{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "H:\\Anaconda\\lib\\site-packages\\h5py\\__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.\n",
      "  from ._conv import register_converters as _register_converters\n"
     ]
    }
   ],
   "source": [
    "from tensorflow import keras\n",
    "from tensorflow.keras import layers"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "data = pd.read_csv('./PRSA_data_2010.1.1-2014.12.31.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 43824 entries, 0 to 43823\n",
      "Data columns (total 13 columns):\n",
      "No       43824 non-null int64\n",
      "year     43824 non-null int64\n",
      "month    43824 non-null int64\n",
      "day      43824 non-null int64\n",
      "hour     43824 non-null int64\n",
      "pm2.5    41757 non-null float64\n",
      "DEWP     43824 non-null int64\n",
      "TEMP     43824 non-null float64\n",
      "PRES     43824 non-null float64\n",
      "cbwd     43824 non-null object\n",
      "Iws      43824 non-null float64\n",
      "Is       43824 non-null int64\n",
      "Ir       43824 non-null int64\n",
      "dtypes: float64(4), int64(8), object(1)\n",
      "memory usage: 4.3+ MB\n"
     ]
    }
   ],
   "source": [
    "data.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>No</th>\n",
       "      <th>year</th>\n",
       "      <th>month</th>\n",
       "      <th>day</th>\n",
       "      <th>hour</th>\n",
       "      <th>pm2.5</th>\n",
       "      <th>DEWP</th>\n",
       "      <th>TEMP</th>\n",
       "      <th>PRES</th>\n",
       "      <th>cbwd</th>\n",
       "      <th>Iws</th>\n",
       "      <th>Is</th>\n",
       "      <th>Ir</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>2010</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-21</td>\n",
       "      <td>-11.0</td>\n",
       "      <td>1021.0</td>\n",
       "      <td>NW</td>\n",
       "      <td>1.79</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>2010</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-21</td>\n",
       "      <td>-12.0</td>\n",
       "      <td>1020.0</td>\n",
       "      <td>NW</td>\n",
       "      <td>4.92</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>2010</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-21</td>\n",
       "      <td>-11.0</td>\n",
       "      <td>1019.0</td>\n",
       "      <td>NW</td>\n",
       "      <td>6.71</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>2010</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-21</td>\n",
       "      <td>-14.0</td>\n",
       "      <td>1019.0</td>\n",
       "      <td>NW</td>\n",
       "      <td>9.84</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>2010</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-20</td>\n",
       "      <td>-12.0</td>\n",
       "      <td>1018.0</td>\n",
       "      <td>NW</td>\n",
       "      <td>12.97</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>6</td>\n",
       "      <td>2010</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>5</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-19</td>\n",
       "      <td>-10.0</td>\n",
       "      <td>1017.0</td>\n",
       "      <td>NW</td>\n",
       "      <td>16.10</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>7</td>\n",
       "      <td>2010</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>6</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-19</td>\n",
       "      <td>-9.0</td>\n",
       "      <td>1017.0</td>\n",
       "      <td>NW</td>\n",
       "      <td>19.23</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>8</td>\n",
       "      <td>2010</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>7</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-19</td>\n",
       "      <td>-9.0</td>\n",
       "      <td>1017.0</td>\n",
       "      <td>NW</td>\n",
       "      <td>21.02</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>9</td>\n",
       "      <td>2010</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>8</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-19</td>\n",
       "      <td>-9.0</td>\n",
       "      <td>1017.0</td>\n",
       "      <td>NW</td>\n",
       "      <td>24.15</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>10</td>\n",
       "      <td>2010</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>9</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-20</td>\n",
       "      <td>-8.0</td>\n",
       "      <td>1017.0</td>\n",
       "      <td>NW</td>\n",
       "      <td>27.28</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>11</td>\n",
       "      <td>2010</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>10</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-19</td>\n",
       "      <td>-7.0</td>\n",
       "      <td>1017.0</td>\n",
       "      <td>NW</td>\n",
       "      <td>31.30</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>12</td>\n",
       "      <td>2010</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>11</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-18</td>\n",
       "      <td>-5.0</td>\n",
       "      <td>1017.0</td>\n",
       "      <td>NW</td>\n",
       "      <td>34.43</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>13</td>\n",
       "      <td>2010</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>12</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-19</td>\n",
       "      <td>-5.0</td>\n",
       "      <td>1015.0</td>\n",
       "      <td>NW</td>\n",
       "      <td>37.56</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>14</td>\n",
       "      <td>2010</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>13</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-18</td>\n",
       "      <td>-3.0</td>\n",
       "      <td>1015.0</td>\n",
       "      <td>NW</td>\n",
       "      <td>40.69</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>15</td>\n",
       "      <td>2010</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>14</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-18</td>\n",
       "      <td>-2.0</td>\n",
       "      <td>1014.0</td>\n",
       "      <td>NW</td>\n",
       "      <td>43.82</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>16</td>\n",
       "      <td>2010</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>15</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-18</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>1014.0</td>\n",
       "      <td>cv</td>\n",
       "      <td>0.89</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>17</td>\n",
       "      <td>2010</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>16</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-19</td>\n",
       "      <td>-2.0</td>\n",
       "      <td>1015.0</td>\n",
       "      <td>NW</td>\n",
       "      <td>1.79</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>18</td>\n",
       "      <td>2010</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>17</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-18</td>\n",
       "      <td>-3.0</td>\n",
       "      <td>1015.0</td>\n",
       "      <td>NW</td>\n",
       "      <td>2.68</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>19</td>\n",
       "      <td>2010</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>18</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-18</td>\n",
       "      <td>-5.0</td>\n",
       "      <td>1016.0</td>\n",
       "      <td>NE</td>\n",
       "      <td>1.79</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>20</td>\n",
       "      <td>2010</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>19</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-17</td>\n",
       "      <td>-4.0</td>\n",
       "      <td>1017.0</td>\n",
       "      <td>NW</td>\n",
       "      <td>1.79</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>21</td>\n",
       "      <td>2010</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>20</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-17</td>\n",
       "      <td>-5.0</td>\n",
       "      <td>1017.0</td>\n",
       "      <td>cv</td>\n",
       "      <td>0.89</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>22</td>\n",
       "      <td>2010</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>21</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-17</td>\n",
       "      <td>-5.0</td>\n",
       "      <td>1018.0</td>\n",
       "      <td>NW</td>\n",
       "      <td>1.79</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>23</td>\n",
       "      <td>2010</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>22</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-17</td>\n",
       "      <td>-5.0</td>\n",
       "      <td>1018.0</td>\n",
       "      <td>NW</td>\n",
       "      <td>2.68</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>24</td>\n",
       "      <td>2010</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>23</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-17</td>\n",
       "      <td>-5.0</td>\n",
       "      <td>1020.0</td>\n",
       "      <td>cv</td>\n",
       "      <td>0.89</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>545</th>\n",
       "      <td>546</td>\n",
       "      <td>2010</td>\n",
       "      <td>1</td>\n",
       "      <td>23</td>\n",
       "      <td>17</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-18</td>\n",
       "      <td>2.0</td>\n",
       "      <td>1024.0</td>\n",
       "      <td>NW</td>\n",
       "      <td>91.22</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>546</th>\n",
       "      <td>547</td>\n",
       "      <td>2010</td>\n",
       "      <td>1</td>\n",
       "      <td>23</td>\n",
       "      <td>18</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-18</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1024.0</td>\n",
       "      <td>NW</td>\n",
       "      <td>96.14</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>547</th>\n",
       "      <td>548</td>\n",
       "      <td>2010</td>\n",
       "      <td>1</td>\n",
       "      <td>23</td>\n",
       "      <td>19</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-17</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1024.0</td>\n",
       "      <td>NW</td>\n",
       "      <td>100.16</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>548</th>\n",
       "      <td>549</td>\n",
       "      <td>2010</td>\n",
       "      <td>1</td>\n",
       "      <td>23</td>\n",
       "      <td>20</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-18</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1024.0</td>\n",
       "      <td>SE</td>\n",
       "      <td>1.79</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>549</th>\n",
       "      <td>550</td>\n",
       "      <td>2010</td>\n",
       "      <td>1</td>\n",
       "      <td>23</td>\n",
       "      <td>21</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-15</td>\n",
       "      <td>-3.0</td>\n",
       "      <td>1024.0</td>\n",
       "      <td>cv</td>\n",
       "      <td>0.89</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>550</th>\n",
       "      <td>551</td>\n",
       "      <td>2010</td>\n",
       "      <td>1</td>\n",
       "      <td>23</td>\n",
       "      <td>22</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-16</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1023.0</td>\n",
       "      <td>NW</td>\n",
       "      <td>1.79</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>42847</th>\n",
       "      <td>42848</td>\n",
       "      <td>2014</td>\n",
       "      <td>11</td>\n",
       "      <td>21</td>\n",
       "      <td>7</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-3</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1020.0</td>\n",
       "      <td>NW</td>\n",
       "      <td>11.17</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>42848</th>\n",
       "      <td>42849</td>\n",
       "      <td>2014</td>\n",
       "      <td>11</td>\n",
       "      <td>21</td>\n",
       "      <td>8</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-3</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1020.0</td>\n",
       "      <td>cv</td>\n",
       "      <td>0.89</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43190</th>\n",
       "      <td>43191</td>\n",
       "      <td>2014</td>\n",
       "      <td>12</td>\n",
       "      <td>5</td>\n",
       "      <td>14</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-22</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1025.0</td>\n",
       "      <td>NW</td>\n",
       "      <td>41.12</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43191</th>\n",
       "      <td>43192</td>\n",
       "      <td>2014</td>\n",
       "      <td>12</td>\n",
       "      <td>5</td>\n",
       "      <td>15</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-22</td>\n",
       "      <td>3.0</td>\n",
       "      <td>1025.0</td>\n",
       "      <td>NE</td>\n",
       "      <td>1.79</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43264</th>\n",
       "      <td>43265</td>\n",
       "      <td>2014</td>\n",
       "      <td>12</td>\n",
       "      <td>8</td>\n",
       "      <td>16</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-13</td>\n",
       "      <td>3.0</td>\n",
       "      <td>1033.0</td>\n",
       "      <td>cv</td>\n",
       "      <td>1.79</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43266</th>\n",
       "      <td>43267</td>\n",
       "      <td>2014</td>\n",
       "      <td>12</td>\n",
       "      <td>8</td>\n",
       "      <td>18</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-11</td>\n",
       "      <td>-2.0</td>\n",
       "      <td>1034.0</td>\n",
       "      <td>SE</td>\n",
       "      <td>0.89</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43267</th>\n",
       "      <td>43268</td>\n",
       "      <td>2014</td>\n",
       "      <td>12</td>\n",
       "      <td>8</td>\n",
       "      <td>19</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-11</td>\n",
       "      <td>-2.0</td>\n",
       "      <td>1035.0</td>\n",
       "      <td>SE</td>\n",
       "      <td>1.78</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43268</th>\n",
       "      <td>43269</td>\n",
       "      <td>2014</td>\n",
       "      <td>12</td>\n",
       "      <td>8</td>\n",
       "      <td>20</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-11</td>\n",
       "      <td>-4.0</td>\n",
       "      <td>1036.0</td>\n",
       "      <td>SE</td>\n",
       "      <td>2.67</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43269</th>\n",
       "      <td>43270</td>\n",
       "      <td>2014</td>\n",
       "      <td>12</td>\n",
       "      <td>8</td>\n",
       "      <td>21</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-11</td>\n",
       "      <td>-5.0</td>\n",
       "      <td>1036.0</td>\n",
       "      <td>SE</td>\n",
       "      <td>3.56</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43270</th>\n",
       "      <td>43271</td>\n",
       "      <td>2014</td>\n",
       "      <td>12</td>\n",
       "      <td>8</td>\n",
       "      <td>22</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-11</td>\n",
       "      <td>-5.0</td>\n",
       "      <td>1036.0</td>\n",
       "      <td>NE</td>\n",
       "      <td>0.89</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43273</th>\n",
       "      <td>43274</td>\n",
       "      <td>2014</td>\n",
       "      <td>12</td>\n",
       "      <td>9</td>\n",
       "      <td>1</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-11</td>\n",
       "      <td>-4.0</td>\n",
       "      <td>1037.0</td>\n",
       "      <td>cv</td>\n",
       "      <td>0.89</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43274</th>\n",
       "      <td>43275</td>\n",
       "      <td>2014</td>\n",
       "      <td>12</td>\n",
       "      <td>9</td>\n",
       "      <td>2</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-10</td>\n",
       "      <td>-5.0</td>\n",
       "      <td>1036.0</td>\n",
       "      <td>SE</td>\n",
       "      <td>0.89</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43275</th>\n",
       "      <td>43276</td>\n",
       "      <td>2014</td>\n",
       "      <td>12</td>\n",
       "      <td>9</td>\n",
       "      <td>3</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-10</td>\n",
       "      <td>-6.0</td>\n",
       "      <td>1037.0</td>\n",
       "      <td>cv</td>\n",
       "      <td>0.89</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43276</th>\n",
       "      <td>43277</td>\n",
       "      <td>2014</td>\n",
       "      <td>12</td>\n",
       "      <td>9</td>\n",
       "      <td>4</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-10</td>\n",
       "      <td>-7.0</td>\n",
       "      <td>1036.0</td>\n",
       "      <td>cv</td>\n",
       "      <td>1.78</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43277</th>\n",
       "      <td>43278</td>\n",
       "      <td>2014</td>\n",
       "      <td>12</td>\n",
       "      <td>9</td>\n",
       "      <td>5</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-11</td>\n",
       "      <td>-6.0</td>\n",
       "      <td>1036.0</td>\n",
       "      <td>cv</td>\n",
       "      <td>2.67</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43278</th>\n",
       "      <td>43279</td>\n",
       "      <td>2014</td>\n",
       "      <td>12</td>\n",
       "      <td>9</td>\n",
       "      <td>6</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-11</td>\n",
       "      <td>-7.0</td>\n",
       "      <td>1036.0</td>\n",
       "      <td>cv</td>\n",
       "      <td>3.56</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43279</th>\n",
       "      <td>43280</td>\n",
       "      <td>2014</td>\n",
       "      <td>12</td>\n",
       "      <td>9</td>\n",
       "      <td>7</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-11</td>\n",
       "      <td>-8.0</td>\n",
       "      <td>1036.0</td>\n",
       "      <td>cv</td>\n",
       "      <td>4.45</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43280</th>\n",
       "      <td>43281</td>\n",
       "      <td>2014</td>\n",
       "      <td>12</td>\n",
       "      <td>9</td>\n",
       "      <td>8</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-9</td>\n",
       "      <td>-6.0</td>\n",
       "      <td>1036.0</td>\n",
       "      <td>SE</td>\n",
       "      <td>0.89</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43281</th>\n",
       "      <td>43282</td>\n",
       "      <td>2014</td>\n",
       "      <td>12</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-8</td>\n",
       "      <td>-5.0</td>\n",
       "      <td>1037.0</td>\n",
       "      <td>NE</td>\n",
       "      <td>1.79</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43282</th>\n",
       "      <td>43283</td>\n",
       "      <td>2014</td>\n",
       "      <td>12</td>\n",
       "      <td>9</td>\n",
       "      <td>10</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-8</td>\n",
       "      <td>-4.0</td>\n",
       "      <td>1037.0</td>\n",
       "      <td>cv</td>\n",
       "      <td>0.89</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43283</th>\n",
       "      <td>43284</td>\n",
       "      <td>2014</td>\n",
       "      <td>12</td>\n",
       "      <td>9</td>\n",
       "      <td>11</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-8</td>\n",
       "      <td>-3.0</td>\n",
       "      <td>1036.0</td>\n",
       "      <td>NE</td>\n",
       "      <td>1.79</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43544</th>\n",
       "      <td>43545</td>\n",
       "      <td>2014</td>\n",
       "      <td>12</td>\n",
       "      <td>20</td>\n",
       "      <td>8</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-18</td>\n",
       "      <td>-4.0</td>\n",
       "      <td>1031.0</td>\n",
       "      <td>NW</td>\n",
       "      <td>225.30</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43545</th>\n",
       "      <td>43546</td>\n",
       "      <td>2014</td>\n",
       "      <td>12</td>\n",
       "      <td>20</td>\n",
       "      <td>9</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-17</td>\n",
       "      <td>-4.0</td>\n",
       "      <td>1031.0</td>\n",
       "      <td>NW</td>\n",
       "      <td>228.43</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43546</th>\n",
       "      <td>43547</td>\n",
       "      <td>2014</td>\n",
       "      <td>12</td>\n",
       "      <td>20</td>\n",
       "      <td>10</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-18</td>\n",
       "      <td>-2.0</td>\n",
       "      <td>1031.0</td>\n",
       "      <td>NW</td>\n",
       "      <td>233.35</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43547</th>\n",
       "      <td>43548</td>\n",
       "      <td>2014</td>\n",
       "      <td>12</td>\n",
       "      <td>20</td>\n",
       "      <td>11</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-17</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>1031.0</td>\n",
       "      <td>NW</td>\n",
       "      <td>239.16</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43548</th>\n",
       "      <td>43549</td>\n",
       "      <td>2014</td>\n",
       "      <td>12</td>\n",
       "      <td>20</td>\n",
       "      <td>12</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-18</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1030.0</td>\n",
       "      <td>NW</td>\n",
       "      <td>244.97</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43549</th>\n",
       "      <td>43550</td>\n",
       "      <td>2014</td>\n",
       "      <td>12</td>\n",
       "      <td>20</td>\n",
       "      <td>13</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-19</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1029.0</td>\n",
       "      <td>NW</td>\n",
       "      <td>249.89</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43550</th>\n",
       "      <td>43551</td>\n",
       "      <td>2014</td>\n",
       "      <td>12</td>\n",
       "      <td>20</td>\n",
       "      <td>14</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-20</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1029.0</td>\n",
       "      <td>NW</td>\n",
       "      <td>257.04</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43551</th>\n",
       "      <td>43552</td>\n",
       "      <td>2014</td>\n",
       "      <td>12</td>\n",
       "      <td>20</td>\n",
       "      <td>15</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-20</td>\n",
       "      <td>2.0</td>\n",
       "      <td>1028.0</td>\n",
       "      <td>NW</td>\n",
       "      <td>262.85</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43552</th>\n",
       "      <td>43553</td>\n",
       "      <td>2014</td>\n",
       "      <td>12</td>\n",
       "      <td>20</td>\n",
       "      <td>16</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-21</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1028.0</td>\n",
       "      <td>NW</td>\n",
       "      <td>270.00</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>2067 rows × 13 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "          No  year  month  day  hour  pm2.5  DEWP  TEMP    PRES cbwd     Iws  \\\n",
       "0          1  2010      1    1     0    NaN   -21 -11.0  1021.0   NW    1.79   \n",
       "1          2  2010      1    1     1    NaN   -21 -12.0  1020.0   NW    4.92   \n",
       "2          3  2010      1    1     2    NaN   -21 -11.0  1019.0   NW    6.71   \n",
       "3          4  2010      1    1     3    NaN   -21 -14.0  1019.0   NW    9.84   \n",
       "4          5  2010      1    1     4    NaN   -20 -12.0  1018.0   NW   12.97   \n",
       "5          6  2010      1    1     5    NaN   -19 -10.0  1017.0   NW   16.10   \n",
       "6          7  2010      1    1     6    NaN   -19  -9.0  1017.0   NW   19.23   \n",
       "7          8  2010      1    1     7    NaN   -19  -9.0  1017.0   NW   21.02   \n",
       "8          9  2010      1    1     8    NaN   -19  -9.0  1017.0   NW   24.15   \n",
       "9         10  2010      1    1     9    NaN   -20  -8.0  1017.0   NW   27.28   \n",
       "10        11  2010      1    1    10    NaN   -19  -7.0  1017.0   NW   31.30   \n",
       "11        12  2010      1    1    11    NaN   -18  -5.0  1017.0   NW   34.43   \n",
       "12        13  2010      1    1    12    NaN   -19  -5.0  1015.0   NW   37.56   \n",
       "13        14  2010      1    1    13    NaN   -18  -3.0  1015.0   NW   40.69   \n",
       "14        15  2010      1    1    14    NaN   -18  -2.0  1014.0   NW   43.82   \n",
       "15        16  2010      1    1    15    NaN   -18  -1.0  1014.0   cv    0.89   \n",
       "16        17  2010      1    1    16    NaN   -19  -2.0  1015.0   NW    1.79   \n",
       "17        18  2010      1    1    17    NaN   -18  -3.0  1015.0   NW    2.68   \n",
       "18        19  2010      1    1    18    NaN   -18  -5.0  1016.0   NE    1.79   \n",
       "19        20  2010      1    1    19    NaN   -17  -4.0  1017.0   NW    1.79   \n",
       "20        21  2010      1    1    20    NaN   -17  -5.0  1017.0   cv    0.89   \n",
       "21        22  2010      1    1    21    NaN   -17  -5.0  1018.0   NW    1.79   \n",
       "22        23  2010      1    1    22    NaN   -17  -5.0  1018.0   NW    2.68   \n",
       "23        24  2010      1    1    23    NaN   -17  -5.0  1020.0   cv    0.89   \n",
       "545      546  2010      1   23    17    NaN   -18   2.0  1024.0   NW   91.22   \n",
       "546      547  2010      1   23    18    NaN   -18   1.0  1024.0   NW   96.14   \n",
       "547      548  2010      1   23    19    NaN   -17   0.0  1024.0   NW  100.16   \n",
       "548      549  2010      1   23    20    NaN   -18   0.0  1024.0   SE    1.79   \n",
       "549      550  2010      1   23    21    NaN   -15  -3.0  1024.0   cv    0.89   \n",
       "550      551  2010      1   23    22    NaN   -16   0.0  1023.0   NW    1.79   \n",
       "...      ...   ...    ...  ...   ...    ...   ...   ...     ...  ...     ...   \n",
       "42847  42848  2014     11   21     7    NaN    -3   0.0  1020.0   NW   11.17   \n",
       "42848  42849  2014     11   21     8    NaN    -3   0.0  1020.0   cv    0.89   \n",
       "43190  43191  2014     12    5    14    NaN   -22   4.0  1025.0   NW   41.12   \n",
       "43191  43192  2014     12    5    15    NaN   -22   3.0  1025.0   NE    1.79   \n",
       "43264  43265  2014     12    8    16    NaN   -13   3.0  1033.0   cv    1.79   \n",
       "43266  43267  2014     12    8    18    NaN   -11  -2.0  1034.0   SE    0.89   \n",
       "43267  43268  2014     12    8    19    NaN   -11  -2.0  1035.0   SE    1.78   \n",
       "43268  43269  2014     12    8    20    NaN   -11  -4.0  1036.0   SE    2.67   \n",
       "43269  43270  2014     12    8    21    NaN   -11  -5.0  1036.0   SE    3.56   \n",
       "43270  43271  2014     12    8    22    NaN   -11  -5.0  1036.0   NE    0.89   \n",
       "43273  43274  2014     12    9     1    NaN   -11  -4.0  1037.0   cv    0.89   \n",
       "43274  43275  2014     12    9     2    NaN   -10  -5.0  1036.0   SE    0.89   \n",
       "43275  43276  2014     12    9     3    NaN   -10  -6.0  1037.0   cv    0.89   \n",
       "43276  43277  2014     12    9     4    NaN   -10  -7.0  1036.0   cv    1.78   \n",
       "43277  43278  2014     12    9     5    NaN   -11  -6.0  1036.0   cv    2.67   \n",
       "43278  43279  2014     12    9     6    NaN   -11  -7.0  1036.0   cv    3.56   \n",
       "43279  43280  2014     12    9     7    NaN   -11  -8.0  1036.0   cv    4.45   \n",
       "43280  43281  2014     12    9     8    NaN    -9  -6.0  1036.0   SE    0.89   \n",
       "43281  43282  2014     12    9     9    NaN    -8  -5.0  1037.0   NE    1.79   \n",
       "43282  43283  2014     12    9    10    NaN    -8  -4.0  1037.0   cv    0.89   \n",
       "43283  43284  2014     12    9    11    NaN    -8  -3.0  1036.0   NE    1.79   \n",
       "43544  43545  2014     12   20     8    NaN   -18  -4.0  1031.0   NW  225.30   \n",
       "43545  43546  2014     12   20     9    NaN   -17  -4.0  1031.0   NW  228.43   \n",
       "43546  43547  2014     12   20    10    NaN   -18  -2.0  1031.0   NW  233.35   \n",
       "43547  43548  2014     12   20    11    NaN   -17  -1.0  1031.0   NW  239.16   \n",
       "43548  43549  2014     12   20    12    NaN   -18   0.0  1030.0   NW  244.97   \n",
       "43549  43550  2014     12   20    13    NaN   -19   1.0  1029.0   NW  249.89   \n",
       "43550  43551  2014     12   20    14    NaN   -20   1.0  1029.0   NW  257.04   \n",
       "43551  43552  2014     12   20    15    NaN   -20   2.0  1028.0   NW  262.85   \n",
       "43552  43553  2014     12   20    16    NaN   -21   1.0  1028.0   NW  270.00   \n",
       "\n",
       "       Is  Ir  \n",
       "0       0   0  \n",
       "1       0   0  \n",
       "2       0   0  \n",
       "3       0   0  \n",
       "4       0   0  \n",
       "5       0   0  \n",
       "6       0   0  \n",
       "7       0   0  \n",
       "8       0   0  \n",
       "9       0   0  \n",
       "10      0   0  \n",
       "11      0   0  \n",
       "12      0   0  \n",
       "13      0   0  \n",
       "14      0   0  \n",
       "15      0   0  \n",
       "16      0   0  \n",
       "17      0   0  \n",
       "18      0   0  \n",
       "19      0   0  \n",
       "20      0   0  \n",
       "21      0   0  \n",
       "22      0   0  \n",
       "23      0   0  \n",
       "545     0   0  \n",
       "546     0   0  \n",
       "547     0   0  \n",
       "548     0   0  \n",
       "549     0   0  \n",
       "550     0   0  \n",
       "...    ..  ..  \n",
       "42847   0   0  \n",
       "42848   0   0  \n",
       "43190   0   0  \n",
       "43191   0   0  \n",
       "43264   0   0  \n",
       "43266   0   0  \n",
       "43267   0   0  \n",
       "43268   0   0  \n",
       "43269   0   0  \n",
       "43270   0   0  \n",
       "43273   0   0  \n",
       "43274   0   0  \n",
       "43275   0   0  \n",
       "43276   0   0  \n",
       "43277   0   0  \n",
       "43278   0   0  \n",
       "43279   0   0  \n",
       "43280   0   0  \n",
       "43281   0   0  \n",
       "43282   0   0  \n",
       "43283   0   0  \n",
       "43544   0   0  \n",
       "43545   0   0  \n",
       "43546   0   0  \n",
       "43547   0   0  \n",
       "43548   0   0  \n",
       "43549   0   0  \n",
       "43550   0   0  \n",
       "43551   0   0  \n",
       "43552   0   0  \n",
       "\n",
       "[2067 rows x 13 columns]"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data[data['pm2.5'].isna()]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "data = data.iloc[24:].copy()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "data.fillna(method='ffill', inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 43800 entries, 24 to 43823\n",
      "Data columns (total 13 columns):\n",
      "No       43800 non-null int64\n",
      "year     43800 non-null int64\n",
      "month    43800 non-null int64\n",
      "day      43800 non-null int64\n",
      "hour     43800 non-null int64\n",
      "pm2.5    43800 non-null float64\n",
      "DEWP     43800 non-null int64\n",
      "TEMP     43800 non-null float64\n",
      "PRES     43800 non-null float64\n",
      "cbwd     43800 non-null object\n",
      "Iws      43800 non-null float64\n",
      "Is       43800 non-null int64\n",
      "Ir       43800 non-null int64\n",
      "dtypes: float64(4), int64(8), object(1)\n",
      "memory usage: 4.3+ MB\n"
     ]
    }
   ],
   "source": [
    "data.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "data.drop('No', axis=1, inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "import datetime"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "data['time'] = data.apply(lambda x: datetime.datetime(year=x['year'],\n",
    "                                       month=x['month'],\n",
    "                                       day=x['day'], \n",
    "                                       hour=x['hour']), \n",
    "                          axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "data.set_index('time', inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "data.drop(columns=['year', 'month', 'day', 'hour'], inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>pm2.5</th>\n",
       "      <th>DEWP</th>\n",
       "      <th>TEMP</th>\n",
       "      <th>PRES</th>\n",
       "      <th>cbwd</th>\n",
       "      <th>Iws</th>\n",
       "      <th>Is</th>\n",
       "      <th>Ir</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>time</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2010-01-02 00:00:00</th>\n",
       "      <td>129.0</td>\n",
       "      <td>-16</td>\n",
       "      <td>-4.0</td>\n",
       "      <td>1020.0</td>\n",
       "      <td>SE</td>\n",
       "      <td>1.79</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-01-02 01:00:00</th>\n",
       "      <td>148.0</td>\n",
       "      <td>-15</td>\n",
       "      <td>-4.0</td>\n",
       "      <td>1020.0</td>\n",
       "      <td>SE</td>\n",
       "      <td>2.68</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-01-02 02:00:00</th>\n",
       "      <td>159.0</td>\n",
       "      <td>-11</td>\n",
       "      <td>-5.0</td>\n",
       "      <td>1021.0</td>\n",
       "      <td>SE</td>\n",
       "      <td>3.57</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-01-02 03:00:00</th>\n",
       "      <td>181.0</td>\n",
       "      <td>-7</td>\n",
       "      <td>-5.0</td>\n",
       "      <td>1022.0</td>\n",
       "      <td>SE</td>\n",
       "      <td>5.36</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-01-02 04:00:00</th>\n",
       "      <td>138.0</td>\n",
       "      <td>-7</td>\n",
       "      <td>-5.0</td>\n",
       "      <td>1022.0</td>\n",
       "      <td>SE</td>\n",
       "      <td>6.25</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                     pm2.5  DEWP  TEMP    PRES cbwd   Iws  Is  Ir\n",
       "time                                                             \n",
       "2010-01-02 00:00:00  129.0   -16  -4.0  1020.0   SE  1.79   0   0\n",
       "2010-01-02 01:00:00  148.0   -15  -4.0  1020.0   SE  2.68   0   0\n",
       "2010-01-02 02:00:00  159.0   -11  -5.0  1021.0   SE  3.57   0   0\n",
       "2010-01-02 03:00:00  181.0    -7  -5.0  1022.0   SE  5.36   1   0\n",
       "2010-01-02 04:00:00  138.0    -7  -5.0  1022.0   SE  6.25   2   0"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "data.columns = ['pm2.5', 'dew', 'temp', 'press', 'cbwd', 'iws', 'snow', 'rain']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array(['SE', 'cv', 'NW', 'NE'], dtype=object)"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.cbwd.unique()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "data = data.join(pd.get_dummies(data.cbwd))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "del data['cbwd']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "DatetimeIndex: 43800 entries, 2010-01-02 00:00:00 to 2014-12-31 23:00:00\n",
      "Data columns (total 11 columns):\n",
      "pm2.5    43800 non-null float64\n",
      "dew      43800 non-null int64\n",
      "temp     43800 non-null float64\n",
      "press    43800 non-null float64\n",
      "iws      43800 non-null float64\n",
      "snow     43800 non-null int64\n",
      "rain     43800 non-null int64\n",
      "NE       43800 non-null uint8\n",
      "NW       43800 non-null uint8\n",
      "SE       43800 non-null uint8\n",
      "cv       43800 non-null uint8\n",
      "dtypes: float64(4), int64(3), uint8(4)\n",
      "memory usage: 4.1 MB\n"
     ]
    }
   ],
   "source": [
    "data.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x3c4e3a55f8>"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAAEtCAYAAAAGK6vfAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzsvXm8HGWV//85Vb3cNTfbzUJ2IKyyh00QN0BkERQdxVFREXTGbdQZBXed309RRx1RR0VxRXADBQcGQVZRtgQCSQiQhZDcrDe5++296vn+UfVUPVVd3V1VXd3Vt+/zfr3yyu3q7uqnq6tOnedzznMOMcYgkUgkkvZFiXsAEolEImks0tBLJBJJmyMNvUQikbQ50tBLJBJJmyMNvUQikbQ50tBLJBJJmyMNvUQikbQ50tBLJBJJmyMNvUQikbQ50tBLJBJJm5OIewAAMHfuXLZ8+fK4hyGRSCRTijVr1uxnjPXXel1LGPrly5dj9erVcQ9DIpFIphRE9JKf10npRiKRSNocaeglEomkzZGGXiKRSNocaeglEomkzZGGXiKRSNocaeglEomkzZGGPma2Dk4gV9TiHoZEImljpKGPkUJJx2u++SA+cvNTcQ9FIpG0MdLQx0jW9OQf2XIg5pFIJJJ2Rhr6GOGSTTIhfwaJRNI4pIWJkWzBNPQqxTwSiUTSzkhDHyNcuklJj14ikTQQXxaGiLYR0ToiWktEq81ts4noHiLaZP4/y9xORHQdEW0momeI6MRGfoGpTMb06FOqNPQSiaRxBLEwr2aMHc8YW2U+vhrAvYyxlQDuNR8DwOsBrDT/XQXgB1ENtt2wNHpp6CUSSQOpx8JcDOAX5t+/AHCJsP2XzOBRADOJaGEdn9O2cI1eSjcSiaSR+LUwDMDdRLSGiK4yt81njO0GAPP/eeb2RQB2CO8dMLdJXBQ0HQCgkAzGSiSSxuG38cgZjLFdRDQPwD1E9FyV13pZLVb2IuOGcRUALF261Ocw2ouSXnZYJBKJJHJ8efSMsV3m//sA/BHAKQD2cknG/H+f+fIBAEuEty8GsMtjn9czxlYxxlb199fshNWW6Kahl+ZeIpE0kpqGnoi6iaiX/w3gXADrAdwO4HLzZZcDuM38+3YA7zKzb04DMMolHokTjXv0TJp6iUTSOPxIN/MB/JEMHTkB4CbG2F1E9ASA3xHRFQC2A3iL+fo7AZwPYDOADID3RD7qNkGT0o1EImkCNQ09Y2wrgOM8th8A8FqP7QzAByMZXZujMSndSCSSxiPz+mKEe/RSuZFIJI1EGvoYkdKNRCJpBtLQx4jl0UvxRiKRNBBp6GNEZ1K6kUgkjUca+hiRC6YkEkkzkIY+RqRGL5FImoE09DHCV8ZKey+RSBqJNPQxwqUbXVp6iUTSQKShjxEejC3qeswjkUgk7Yw09DHCNfpCSRp6iUTSOKShjxFeAkEaeolE0kikoY8RTTOlG00aeolE0jikoY8R6dFLJJJmIA19jPBsm6Ims24kEknjkIY+Rnh6ZUHTwWQdBIlE0iCkoY8RXTDuBanTSySxwhjDb5/YjrFcMe6hRI409DEilkCQ8o1EEi9PD4ziU7eswzW3rIt7KJEjDX2MiEXNZEBWIomXTKEEADgwmY95JNEjDX2MiKUPSlK6kUhihSupitEfu62Qhj5GRLVGk8FYiSRWeMysDe28NPRxogk1bmRdM4kkXnTp0UsagRiMlRUsJZJ44R69NPSSSBFleV1KNxJJrDAp3UgagSjdyG5TEkm8yGCspCGIwVjp0Usk8WJr9PGOoxFIQx8joi4vHXqJJF5sZ6v9LL009DFSktKNRNIyMOnRSxqB2EFQGnqJJF5k1o2kIYiLpKREL5HEi2Xo29Aq+v5KRKQS0VNE9L/m4xVE9BgRbSKi3xJRytyeNh9vNp9f3pihT33EWjdyZaxEEi/8EqRp7tF/FMBG4fHXAHybMbYSwDCAK8ztVwAYZowdCuDb5uskHug6g2oKglK6kUjixSqBEPM4GoEvQ09EiwFcAOAn5mMC8BoAfzBf8gsAl5h/X2w+hvn8a6kdb5ERoOkMSdU4NLLxiEQSLzKPHvhvAJ8EwMOHcwCMMMZK5uMBAIvMvxcB2AEA5vOj5uslLgxDr1h/SySS+GDgwdiYB9IAahp6IroQwD7G2Bpxs8dLqyWhllkxIrqKiFYT0erBwUFfg203NMaQ4oZeevQSSazwkiTtKED48ejPAPAGItoG4DcwJJv/BjCTiBLmaxYD2GX+PQBgCQCYz/cBGHLvlDF2PWNsFWNsVX9/f11fYqqi6wwJS7qJeTASyTSHL2BsQztf29Azxq5hjC1mjC0H8DYA9zHG/hnA/QDebL7scgC3mX/fbj6G+fx9TArQnpQilm427BrF8qvvwCNbDtS9L4lkuvHJW54BAKhtaOnryRj9FICPE9FmGBr8Deb2GwDMMbd/HMDV9Q2xfRnOFJBKRCfdPPD8oPn/vrr31a789dm9OO+/H0KuqMU9FEmL0oZ2HonaL7FhjD0A4AHz760ATvF4TQ7AWyIYW1uzetsQxnMljOeMeHYUk57JvLGv7nSgn3Va8b5frgYA7BrJ4uD+nphHI2lF1DZcMdV+32iKsHH3mONxFC1jpaH3T6YgPXqJTaFkX4AzOtrv+pGGPiZmdCYdj6PQ6CdN49WTVuveV7szkS/VfpFk2jApnA/tWDJcGvqY6Eo5vYYopZtEG049o4IvUJvISUMvsckKMZt2XNLSVnOU0UwRLx6YtB6nEwqOWNDbknmxvLvUW1ctwW9X74gkGMu9VLn4qjIpVUFR0zBZkIZeYiNKee3o0beVoX//javx6FZnyv4Nl6/Ca4+cH9OIKlM020u9+oh5hqGPQroxDX1JGvqKdCRVTBY0jGWLcQ9F0kKIWVhedl7XGe5+dg9OP2Qu+lyy61Sgreb4w5NFnLRsFn727pPxtUuPAQCMtugFXTSjr+mk8RNE4URM5o2TVexFK3HSYwbaBsfzMY9E0kqIHr2XjHrn+t34wI1P4gu3rW/msCKjrTz6oqZjYV8HXn3EPOwYygBoXRmjZHr06UR0C6a4HCE9+srw47xrNIdMoVQWK5FMT2pp9DuGsgCAfVPUQWgrj76o69ZKU0Vp7dICBe7RJ4wMmSg0em7ESlqLfukWgM+k/rBmAEd9/i8xj0bSKmQL1bNuuCzK7ctUY2qOugLFkl32l1ega9ViYSXL0HPppv5x8pCz9OgrU3TdBFtV2pM0l1oePZ8tT9VAbVsZ+pLg0fN6Fa36w3BjbEs39e+TZxdJjb4yxZLz2HCJTzK94Ro9kbfTZSU6TNHZclsZ+kLJNvTc6Okt6t1y6YbXumHllZxDIz36yhRcd9TBiampuUqiJWsa+u5UooJ0wxMdpua11VaGviR0bOIt+lr1d+GegWXoIxgnP0Gn6snYaBhjZYZ+NCOlG4lt6DtTque1OGGlLk/N2XJbGfqipiPBg7Fco29Ro1fSdBDZN6QoRsk9eenRe1PUWNlFPJwpxDMYSUuRKWpIqoSUqng6hxlTo5+iyk37GHrGGIoaK8u6aVWN/i8b9gIAiIdQIxinbmXdTE2vo9FwnXX+jLS1bVh69BIA6wZG0ZlUoSjeGv3EFF+j0jaGnnuxSdPAt3owdrJQAmP2zEN69I2HT7//7ezDcN1lJ0BVCBlZ3Gzac8czu/Hw5v0Yy5WgEFVNr5TB2JjhP0AywaUbnoES25Cqki/puOyUpZEGjXWZR18VniI3oyOJNxx3ELpTqrwpShwlww1DX/6aySleR6ptDP2OYSNNLmG6yLyAY9we/ViuiO/eu6nsBMkWNHQmVSv3PUqP/lePvoQ9o7kI9the8MyJbrOMcyqhlAVnJdMPMeONqMKCqYI09C3BZ/64DgCwYZdxd1ZaJL3y2v97Dt+85wXcvWGPtY0xhmxRQ2dKsdqWRXE/0hhDh1k7h9/4JDbcK+sxG7MkFEXGMyQOCOXXYknTkSsa50mrLsCsRdsYel5KYG5PCoCo0cc2JABAzkzbmhSKJhU1Bk1npkcfXdaNpjMct3gmADtdTGLDKxR2JI1zJaGSlLkkDsOuEJWtaRGv3al6vrSNoV88qxMA8PFzDgdgN/iN+w6cMPP6Rc+RL7fuTCVgJ93UN07GjJtHr1mdMSubX5fBb/p8tpdUFRTj9gQkLYVCBHdijdh9Sko3MTM0WcDh83vRmTK8NSKCUmE5czPhef2iQeGeZWdSjazjPN89lyVy0tCXwc8FfsyTKuHhTYMYy8kUy+mMaCEUhcoC9NzQz+hITNngfdsY+vFcCTM6nSVnFaLY78A83VMTPfoClxAUOxhb5zD5ij1eb13WcCmHH2Ju6CdyJQxnivjozU/FNiZJ/IjXXkIpT6/k0k1fV1Lm0cdNtqhZ2itHUbxTpZoJ9+hFT0Csc8PTK+utdcO72HebHv1/3f1CXftrR5hLuuEX8ObBCeRLcgY0XRFnv2pVjz4Zu+MYlilt6G9buxP/9MNHkC9pyBWNdEURpUKqVDPhGr2YxsdroieU6Dz60796HwCgNy0baVSCnwv8mHPjvmMoi8M/exf+vnl/TCOTxMmIWQbjno+dhYRCZV77hDT08TI4nsfj24aQL+lmuqLT0KtEsadXJs2EfjFaby3uUsnyLusdJT8ZO2XHpIq4pRueMsdZu2OkuQOStAQj2SKOXdyHlfN7DY/elVnDPf4eqdHHQ9r04PNFHZmCl0dPsWfd8BIHBaEOOtfTE6qdRx/VzCOhEN798uVITdFOOI3EDsx7R8AX9nU0bzCSlmE4U7QafifU8rgev3Y7k6r06OOAN+3YsGsUg+P5Mo9eUSj2VoI820bUAXmXIx6oBaJreagohFldKRQ0XS4GqoBSIdOJX+yS6cVY1jb0qqKUee38eu1MTt2SGW1h6N/9sycAwFOjj/sOzDsaZYrliy5Ejz4qEgpZS/wn5aIpB5ZGX+Ggx+0USOKhUNKtvhAJhcpqzhdKdpbcVGXqjhz2aliO29CrSvzSDfcAcuLKWEu6IXtlbETjVImszJtJWZnRAT/Ele6tcQfuJfGg6cxaSe+l0fNECi4Vx702Jww1DT0RdRDR40T0NBFtIKIvmdtXENFjRLSJiH5LRClze9p8vNl8fnmjBp923WHLpBui2H8UnmGT8VhGnVSirXUDGOmVvCb/VF2u3Sjc6ZU/e8/JzuebPaAK7B3LWcF1SePRGLMaABlZN97SDVcQpqJ648ejzwN4DWPsOADHAziPiE4D8DUA32aMrQQwDOAK8/VXABhmjB0K4Nvm6xoCP/AcL0Mfu3RjGvqsQ7oRPXqDqEY5qytpVfCcqm3PGoXuWhn76sPnYcnsTuv5VnDUCiUdp37lXvzLjWviHsq0QdeZ1agooSplNiNvyq/cgYrbeQxDTUPPDCbMh0nzHwPwGgB/MLf/AsAl5t8Xm49hPv9aqiSK1ol7gZSXdBP33Zd71aKh5wHapEr2gqmIxtnbkbRy9+O+ybUaXkdjx1C2xiuaywt7xwEAf9skc/qbhcZs6SbhsWCqqBkavmJlyDV7hPXjS6MnIpWI1gLYB+AeAFsAjDDG+PxyAMAi8+9FAHYAgPn8KIA5UQ66Em5DTxR/mWKu72ULHh69uGAqIiPT1yl69FPwjGwkXKMX3I5D5/XYT7fA4RrLGnV3KmUGSaJH023pRvWQbgolHSk1ulXsceDL0DPGNMbY8QAWAzgFwJFeLzP/9zpFy44MEV1FRKuJaPXg4KDf8TpwrwJVXVeH6lG3otl4efR21g1FqtHP6U5h6ZwuqB6LtCT2BaoIlv6mK0/F+85cAaA1PLVxqc03HV1n1jnhnXXDPfpoZ9/NJFDWDWNsBMADAE4DMJOIuKVdDGCX+fcAgCUAYD7fB2DIY1/XM8ZWMcZW9ff3hxr8yvm9jsduo24smAq168jgJ03WI+sm6fASwjM4ngcAXHKCMamSGr03uodHP6+3A/908hIAreGpjeekoW82RjDW+NvLoy9quimzGo/jdh7D4Cfrpp+IZpp/dwI4G8BGAPcDeLP5sssB3Gb+fbv5GObz97EmRS+KmtvQx/+jFKp59KZBpjrLKV9zq9Fd65EtB4z9So3eEzu90jnzi6reUBRMmCWTW2Ao0wZdhx2M9dDoCyUdSdXW6FvhPAmKH49+IYD7iegZAE8AuIcx9r8APgXg40S0GYYGf4P5+hsAzDG3fxzA1dEP25tTVsx2PFYirHVT1HT8I0TRq5KHRm8VNTPdCK/2ZUH468a9AOybmio1ek9s6ca53ZLPmjweL3haZUKK9E1DDMaqigLN5TBqjCGh2Gte4nYew1CzAhZj7BkAJ3hs3wpDr3dvzwF4SySj88Et/3I6/rH5AD782pVlz0Wp0f/wgS345j0v4KYrT8XLD5nr+32iRs/TuEpC1g1grNQMKxuIZQ74tD8hNXpPrPtemQ2NdtFaPfC6KnI21jzEYGxCLffodWY4ja3kEARlSq+MBYCTls32NPKAYUCjKvcyOGHo4M/tHg/0PrE8Mc/H5RdzKgKPfjJvzxS+dumxAIT2hVKjd2KVKXZa+lZynrnUpzN75idpHHzGrwgrY903WcYYiOzSGWwK/ixT3tBXQ1Wi89L6e9IAgH1m4NMvorHNFAyPu6jpUEiQbii8l8Db4H390mNx5kpjpsGn/dIrdOIuUwzrcetMyYsejoGkcWguuTOpKihousNuMNOjtzT6KejTt7Whj7JMMW/Rly34z4p4cf8k1u8csx7nBI8+KZQRJoSvssk1Xd4UHJAafSXcJRA4rRSMFQ297PvbeLgzxK8ZvhZHvMnqpkevWA5BkwcZAW1v6KP6UayMjQCLfO/esMfxmF+4eaFanrHT8F4C1+V7BEMvNXpv3B2mOFHXG6oH6dE3F3cCQ6dZP0usTcVcGn0rzPyC0uaGPrqVsfzHdXuD1XDX3uGZNwVNd9TpISC0dsPTNruEzlJSo/fGvlk7t1sVRJs8Hi8KJXsUzfLob1kzECqjrB2wPHrzpODXrJgObXj00ZcraSZtbei9AithsQ29//e4a/HwHqVFc0k1px6NnhsD8cYhNXpvbI3eJd1YHn38x8vh0Rebc6P+xO+fxtt/8lhTPisuHt60H5v3lSdScF+I59Hza1ZMh9aZ4YzZEl/850lQ2rrBqCHdRPOj8OvPXWahGl0uj573KC1oTummnnLKfHovNkWwNHop3Tjgx7g8GMufb/KAPHBo9CWp0UfFO24wbmTbrr3Asd0KxprnAJ8Zi7MpxhgUxZ7Nt8BpEpi29uijNPTWfgJ49KrLovCTpzwYGz7Ak7c8evumYmn00qN3UOknbKViVaKhlzOyxlMpGOvQ6CE1+pYmyjLF/AIMotFzb+FVhxu1fLKCoRc9eqLwWTfco3dIN1Kj94Qb8jLphj/fAtdvQZiFNWM8U1GGiBJLkuWGPsWDsSXHa0hIr5yK99+2NvQUYc/YMPvh73n3y5cDqCzdEMJ7k5ahF+IBfN8FmbXhwE6vdG5vpRWPReE3a4YRdteHmm64g7Ep1biOxONiafRWMHbqHbO2NvSqEl0rQS6DBJm2cY2c57iL0o0YjAWF9954gFf06DtMGUfmYTuxqleWFTVrnWyKoqY39caTnQYN5EseK4zP+++H8N17N1mGXhFKILjfwxiDQq018wtKWxv6KBdM8RMiyO74e3izbm54RzJF9HUmrdfVswKfNwAXDX1SNaaZuSZlbUwVbOnGub2VVjwaJXF5y7rGf152GjgDBQ9D/9yecXzznhfsPHqhHj3gjG/ZK2NbxyEIStsb+qhkaq7RB8nL5ydLtyuSv38ij7m9aet1FDLrZu9YDt+/f4u1D3F/OgO+d/9mT29mulIpjx4tpL1qjCGpNC84PJwpNPwz4qZamqo7GMvLkojxLb4yVgZjW5Qo69HzEyLIDEHTeeqjannYJU3HUKaAuT2ioQ83TX9291jN18jVlTZWemUF6aYVXDWxNnozJhj/MHsYAO0r41S7BtzBWO7ROzV6HoyV6ZUtSZRlikshpBuxHHFnUkWuqGEoUwBjQH9Pynpd2OqVO4YyAIA7PnJmxddEJV21AxVXxrZQMFZndsncZoxn1OxRCwBbBiea8InNJ+9ajyDOyq31MWQXNQOca1CMMsXSo29ZFIpuZaxmlY8NHoxVFUJHUkW2qGHfmFH9ct6MDut1YevR7x3LQSHgyAUzao5bUrmpcSsF2XSzyQUQ3Xh+/vcXsXcs5/lcRuhRu38iWGXWqYI7ViVq9lbJcDPGpVqryoX3WLVuZNZNS6Io4fPT3fA+r4EMvXmTSSgKOpIqckUd+8aNC26eqNEj3EU9kiliZlfKnup7cNvanZHV+5nqVKpeqbTQBcybXADRaPQDwxl88c/P4spfrvZ8flKQa9pV5hM9+kyh5CocZzzHV5bzZkDl0o0QtI//NAlMm5dAiE660Kz0yiDv4S0DCTtHsrjlyQEryOP26MPYYsPQJ6u+5ot/fhZEhMvNXP7pjFW9soJ00wr3Q4d0E8F4uBfKZ5IijDHc/Ph263G7puOKN7D1O8dwSH932XN8ZXmlYKxCYivBhg85ctrao1cjLIFga/TBPXqxFMJta3cBsBuZANzQBB/ncKaAmZ3ehv7rbz7W+rtdtdegWNJN2crY1gmyMYdHHx1eq6T3uox/23r0RacHL3rr7nUoXsFYBjhWxrZCGm5Q2trQU4TplTxNMYjmr+nGQgtFIRw+v9faPrs7Vb4yNsS5M5YrYkYFQy82lx4TAm7TGnMKXkYLVa8U+5dGAT9vvVbAjuec50UrGPp/bNkf+cxClG6Kmu5q7mJnxgHelV/tlbHm4/gPU2Da2tCrSvQlEILsrqQzq8DYb646zdo+pzvleB2FXBmbKWhWjr6bKI1Fu8AvWDcByhc1HKd0U/+5yw2813oKnnHzuqPnA7AL5MXF5n3jePuPH8MXb98Q6X7FYGyhxBw3NLdHb1d+9VgZ20LF74LS5oY+eukmyP403ShvCgCzBC8+nXQedkK4rJtsQSsrhczhNxgA6KxwM5huMDDPDmGtlHXDmLhSt364g+Ll0XNDf8WZBwOI36Pn43lhb3nd+HoQPfqCy6Pnsg6/JokISZVQdHj0XKM3aIXzJChtbegp0nr0wfPo3TVtZpg1b8QSxUB4j34yX6po6EWPXm3rX9k/rIJHH2WWS704pJsIhsONmlcZAN5Yfm5PCkTxe/RRsWski50jWeuxeAMrlnRHsT93MBYwnCSnRw/HgimZR99iqBH2jLVKIAT4kfMlzdFlakaHoaen3IYe4a7pbFGr6K2LGr2sgmDA4F1muvWybsxaNxFY+mo9CbIF48ToSiWQTihW8/q4qfdbv/za+3DGtfdZj8Ub2N7xHC7+/t8BGDMnd3olYFw7JbdGT7Bm51PQzre3oVcaUKY4yO7yRd0h0/Aqlo7G4AhXj75Q0lHUGLorSTeqbdBkHr2BXsGlb6XqlTqzZ2BRjKdaraOCoE+nE2oLePSN+R1Ej/4RoeRDOqFaDUYcHr1KjpWxdvVK6dG3JEojNPoARjNf0h0nUK/p0bulGyC498brkrgbkHNEjV6WQTCpEYxtBemGMWal40Zi6Kucr3YvAwUdSSV2jb5RQXHxex2YsIu4pZMKMgUNnUnVIXUmVMU7j76FSmUEpb0NPVFk3qwWIhibK2qO8sEzOrlG78rjDqHdjGSNE7avQnqleOJKj96gknRjPd8Ch0mLuNZNtb7B3ACmVMOjb5UFU1H/DOL3Gpq0DX1KVTCRL1llxDmqq3QKM6UbWQKhRYm2lWBwQ2949IJ0kzY1+oTTC1eIAp/cP3poKwBgvrDCVkSUbqRHb6Dr3nn0QdpDNhpdjzi9skrSd76kQVUICVVBOtECHn2D9psv6ZYGPyasHUgnFUzmS+hOO69HVSFHXMvdSnAqXk5tbegp0hIIPBjr/z35kuaSbip79EElppseM5auz3bl5HNURzB2Cp6ZDYChunTTrJnPBdf9DVdVqD0T9crYqh590XZEOpJq7IbeImJLmi9p6EoloCrk8O7TCdUw9K6EBsPQO7Nu2r4EAhEtIaL7iWgjEW0goo+a22cT0T1EtMn8f5a5nYjoOiLaTETPENGJjf4SlVBDNvTwIkwJBNGTAGCtYi2vhx7+3D50Xo/ndjHrZioGjxoBT5NzY+VHN2kcG3aN4e5n93o+F3WtG62qR28b+nRCiV26oQhvcCL8hpZSFYeRTicM6abHLd0oBPH+qDMGgr2+YSpeT348+hKATzDGjgRwGoAPEtFRAK4GcC9jbCWAe83HAPB6ACvNf1cB+EHko/ZJpGWKeeORIMHYojsYa5xQ7vrYFEK6Obi/Gxccs9CRvikiPfpyjAVT5dspwuBnvYgafRQmr1rzb3HGmW6BYGyjMBwutWzNiaqQsbrcQ7oRZ3dGbKe1zpOg1DT0jLHdjLEnzb/HAWwEsAjAxQB+Yb7sFwAuMf++GMAvmcGjAGYS0cLIR+4DJUKNvmRp9P7fky9pjlRKnnXjro9tePTBBjqeK1k3Di8cWTftef0GptKCKdusxn8FG+mVUWbd1PDok7yYl4I1Lw3jT0/trP9DQ9Kolac8KcIddNV0hol8CV0ewdiqWTdT0NIH0uiJaDmAEwA8BmA+Y2w3YNwMAMwzX7YIwA7hbQPmtqajRKi9lkLUoy9qzBEU5Stjy8rQUHDfbaKGoRefm4pTzUbAWIUSCC0UZBPTK6PAr0bPm458/a7nIvvsoDQyvdLL0OvMWF3e49LoFXcwVneujG2B0yQwvougEFEPgFsA/BtjbMzrguEv9dhWdmyI6CoY0g6WLl3qdxiB4BeMzhiUOmP6QUogZAsajvz8XQCcWvmq5bPxxhMWldWGD1qlWNcZskUjwFQJMUgrpRsDPgV30yht2HMMNU4gTWeRjqfaTX48X7RmmeM5o9PU4lldEXxqfUQ9s+ISVSrh3K+uM0zmtbIbQMJj/c20aA5OREkYRv7XjLFbzc17uSRj/r/P3D4AYInw9sUAdrn3yRi7njG2ijG2qr+/P+z4q8I7L0WReROkqJmYwpUQFkfN7k7h2289Hscvmel4fdBWgrxuibs4moio3U/FE7PrFG+bAAAgAElEQVQR6BU8eoDXG2r8caqlg+sMkbYSrHaPH8vas8LrLjsBAPCyRX31f2hI3EkKUcElKtGgH7lwBnIlzQzGutKdy0ogmOXGW2jmFxQ/WTcE4AYAGxlj3xKeuh3A5ebflwO4Tdj+LjP75jQAo1ziaTZWEaIINOpSgDx6sWhSwsuFdBE064YbenfNnEpIj96gkkYP1Jf5FIRqmS38RmMvmKp/QFU9+lzRqr/EnY+eKnJgs4i8BIIpUYlxq0P6u/HSgQwA4ICwiAoAVHLKvVyjR5uXQDgDwDsBvIaI1pr/zgdwLYBziGgTgHPMxwBwJ4CtADYD+DGAf41+2P7gdrDeHyZv3vkBfzcNMatGPLkqEbR6ZdG8kXiVUhC59xOvxMH93dLQmzBU1oHDNmgPijsQL8J/JqVZHn2uZK3WBpo3q6lEo2Il+ZKGdFJ12AFxZnfi0lmO1ycUpbzxSBWPXtNZxebrrULN2zdj7GFUdoRe6/F6BuCDdY4rErhHX690s3fUbrnmZ1/ixeznJqOElG7cxdHcHNLfg/m9HVUzL6YTlfLogeZ59NXOH25cLOkmgs+rZrjHc0X0pO0SGkqI4nqNIOoh5EyPPis0Qt8/blzTn7vwKFx60mLH6xVXw6JaZYq/ftdz+NFDW7H6s2djrtAitJVo65WxVpS8TjvHa1v7XVTiqH/tM7cxiNNdLBkvruXRA2YlPunRAzCzbio8F6YMRRi0Klkw3IBY520EVteRDy7sr6QZ1U87hVgOIV5ZIurP5t+dFxcUf3t+Ta/0WHBoLJhyHjeFbMeq4Iqz8MVvoy3csrPNDb3xf70e/f88sBkAcNzimY5AayVE6caPjQ1aptivRw9EW9htqsOLU3kSogxFGKqdi/ypKBvFiD+9+DevPS+u3G7Wza4SUR9+XufHyLpRrO/23289HtuHDH3+8AW9Ze9Ty6QbQ6PnK2gnC05njztzfuJxcRF/5KWB8KBWvRfw3zbtB2CcFM/7aHMmevR+vLKgE/WCVXWw9onl9k6mG1ff8gw27BoDAAwMZxwrlUWCpriGpVq8hJ+nUS6YEs/9TfvGccSCGQDsoLBjZXWTbnaV4J8cVZxAEz164YaWVBV8+eKjceuTOz2LAqquPha81zBfWZsplDw/J9HCrdxad2QRQFbWTfgThzdueN3R89HXmcR4rljzRBQbOPgJhAYOxmr+grEALwPhf9/txh/WDGAsV0R/bxonLJ2Fd5+x3PN1FGLRWhiqGVLNbegjGJH4cU/vGLH+znt69GjaaqAntg1h+dV3YPM+23GKOhBcLDEwxlBw9YVIqoR3nb4cf/rgGZ7vM4qaOaUbIrLSMyfzbo++9R2paeLRh98HT716xcp+ZAolYzVdQSsrhCQievR+PlsJ2Nu2GEC6UZWpX4++qOn441M78eYTF1sZKX7QdYaSznDJ8YvwsXMOq/paQnQF8KpR7cbPY0lRNh4Rz6uhSVt29PLoCdE16qnFHc8YGdcPvrAfh84z5JOoPzlf0pAv8eqc9rVSZbEnAF7e3B2MNWJ0Cnl59Oaq+Ra+ztra0Eeh0Q9nDEM/uztlnYjZGoZejO77y7oJdjMq+EyvBNpDuvnRg1vwX3e/gIRCeNOJi2u/wYRrtH5uiGEbtAfFj3QTRXrl2h0juHvDHmvlKwAMTdrZY9zQi56u0qRjYHyu8ZuI8azoa9zoSCfs5t/cvNdyFVTXginNLEtBROhOJco8+iBrbOKiraUbJQLphhvVdEJBh8fJ6QXPuQd8GvqALQ+nWzCWz6qGXAtbasEvQHf9fy+aFYj0Jd1EUALhku//Hf/zwBbr8+b2pF0efbl0QxRdEcBaWIa+WB7Pispe5koaMkXjWuxMqnYMoMb73NeMJjSD6UypZR59MUSvimbT5h59/cFYK/CZUJA2p7nVFr0ATg2vMdKNacB8LMZqB49eDfk7BollNCu1MIhHHwX8/J3bk3J49Hkv6YaaV8GTX0uOxAXr/2jGkCtq1vef3e3dctOLhFcJBPM3SSWUMk0+TJvRZtPWhj4KjV6USbymm15MFoJ59O4elbUIotG3yiKYegj7O/KZj69siCbJFtXOh5GM4XHzPsCRtBI0j0F/bxpDGduj3zVqrOSc1WUXv2vWojGgunQTmUdf1C2Jak6AhUyKKxir6XZF0ZSqlK2NsdqMtrBL39bSDY+51FMCQJRJ7JOzukfvkG58fLaiBFwwZXmq/urotLKn4QcePAv6O/IL0E8aarMyoKtlQPFFPItndQKIJjhpe7ROj/6ZgRH0phOOBUMUYUe2WvCb91Pb7UygqD87V9RwwPzOc7pTePURRiX1FXO7q74voZAlEzLGoDN7lpVQyWHoxQWULWzn29vQR9Fk2c5ZV6zAVb6KdHPfc3utfq6Av8bTQXX0IMHYZnmq9cAYw4MvDFY8BvxrBv0d/dYEAppn5KqVo9hn1ktZwHO7IxhOUdNBZBj6YUGjn8iX0NeVdMhEQZMC6oHftPnNDYi+5EO+pOPAhGGw53Sn8Y5Tl+Kpz51Tsf2m+L5sUcO2/ZPW8eAefdLl0ReEv1vZoWprQx9FrRvLK0wo1qKLatLNe39uNH0+fH4v3nX6MnzhDUfV/IygOro4plr4udHEzT3P7sXlP30cP/37i57PW79jwPUAwdYbNCmPvsp3yJjZWjxfOwqtuqAZqzpndCQxkS9ZBjZX1BzlD4DmFXYzxmUciEKp3FDWMwLH6t+ihgOTBSQUwozOBIgIs4Q+DZV45WFG2fShTME6XvwUSqoKCoJGX/QYfyvS1hq9EnLKL1LQjIsvpSroSPgLxgKGbPTli1/m6zOUgNkOrRhkrAde+e/F/ZOez4e9YReCHKeAAfGwVPsO9iIm4zyLYjiFkg6F7I5jE/kS+jqTyBa0sn7DzUyv5PWaHHq3pdGHH4R4reeKGoYmCpjTk6qZOy/CC5PpOisLkKdUxVpECcARtG3ly6zNPXrj/3p+AEsm8enRcyZdKVjVUChYICeQRj8FpBseTNm4e8zzaSsYG/CGXbJmPtH3BAhLte+Qd6U8RjEcQ7ohy9CPm7WackW9zKMHmpdeySWsXFGz0yoj2K94s86VdByYLDgCzn7g55umM9uj59JNwqnRizOSVi4H3taGXvzBwjCZL+FTt6wDwDV6f8FYAMjka98MOO4l17UI4qkGLYEcB9wMP7l9BLtHs2XPh61ZFGjm06Qc8mq/c76kIaGQ1cMgihtPUeMevZHJs30og5JmaNAdqXKPvlk1EPg5rDP7erKyburYr3iO5IsassVS1cWNXogzSHdZijLpRmr08aMEMBB3rd+Na259xrFt874J628j66Y897cSwTz6gHn0AcoUUxMDbGERZ9W7RsobOFjZUyGlGz/NX1SlOU03akk3HUnVbsARhUZf0h2VF9/+48fwpT8/a2r0zuNCFE03Ni/u3rDH4f3ycxgwHCpA+L51fG23dJMtaOhMeReyq4Q9g7RnYNz4JxTFocs78+1DD7vhtLehD7DQ5gM3PombH9/h2MYbJgOmR8+lG4+a9Acm8lh+9R3WYz86vjjOoLVuFLJPyGoELYEcB+LFWfKIuFoLpgJeSbwURUeV3rqcoL9BWBwt6lzfh5fT5b9qJBq9Zhh6sV/qn5/ZhaxHMLZRs7/Hth7AVb9ag2/85Tlrm5h9xIPQURhK8UaVK+rIFvWKFUsrwf0njTHLkCdUvmCqsnQTZ3euWrS1obdXVPp/j3jxDU7Y3qVRAqGyR7/tgDOQ+Ov3nep/nAGlm6Km+0utBNeeW/cEBJy5yF5NUpQQvyMAK7XOT9efZlX5FD1693flvU1hefT1w9MrxZtdSlUwmdfQmXJKGkbgPoIPdcEN+XN77EqVooHkM68ozlPxBpIvacbMJaBHL5ZOcXv0SVXBpn0T+P1qwykUjb7U6GPCKmoW4AcQjbjo0SsKIakSiLw9ejGqf9VZB+OMQ+f6H6cSTB8uaLrvxuDNKr9bD9lC9Y5cYRa+McYwOGEslvFl6Jsl3Qjfwf1djbrpKsiy9NFJN6L3nlQVDGcKmONKNWzU7I87JRmh2F9WuIa40ecfXc8QnNKN7ilR1cIRjHVp9Pwq/48/GDLvVJFu2ju9MkQQLyt4AO62gUSEdELx9OjFfHU/2TAiasCGD0VNR9JHDj0fV6t79LxCKGBnynjh9xhlCxrO+sb9GBzPozed8OXRNU26ET1613e1pJsIlz4UTJlPPAZ8kdKcHrehb8zNjhv1SWHFuGj0rRteBOmVJbdGXyxPI62FIxjryropuqx5cYpIN+1t6K0pmP/3ZAolzDY9HS+dPZ1QPQ296En4lVXEcQaSbkrM982kUdPxKNk3bktkXitHg06JhzIFDI7ncfaR8/FPq/yVNVaI0Iz+EaJxL3h59MINPBLppmRUXixPpSyf6TSqgiev9ijGlMRS3rZHX3+apXiuZHkwNqChF9N5+emouDx6ABgcz7tWxoYbczNoa+mG/2DVlp27Eb14/vfTnz/X2mZ49E5Pf/O+CRyYsOuIBDb0SrASCEU9gEY/BTz6fWN59PcaRserWw+fPvv9GtzLOv+YBTj36AW+3qM0qY2ew6MXzsvhyQJe2DPuqJsedjji783z6L282tMOnuN4TA06Bvw6EovLZYua1WO14EqvrAfRo98/kbfksCBY0o0jvdJ4TrzusgXNceNu5fTKtvbouddbTQ5w49YRe9MJ9HXZJU7TSaXM0z/7Ww86HvvVzzlq4JWxLJhGH+H5V9R0ZPKa45jUy3CmgP6eNAbH8543ZX4T9JsRwvcR5IbbrLr9ohMvphhe9L2HsWs0h0Pm9VjxnrA3aHHGmTdXxqZdUt+xi/usmyunUZVO+TUlFpfLFDTM7Epi/0QBeSGnvl5Ej37zPiNBoicdUroRFkzZ6ZX2d9AYcwZjW9jQt7VHz/Ong3j04pQyVyz3BjoSas2VsUE1ekUJdpIUS0GybqKbjmcKJaz8zP/huC/fHdEeDSbzGmaZ9cJF48cJmg1TsNYZ+P8dmqXRa8K5WBT+Hhg2dHOdMdujD/kZoqEvmumV7hIAXiUBGlUugxt6fs4+suUANu4ew4xO/ps7s27qGQI3zItndWK/OcvuSQdzSsQFeu6G7eKsRNOZwzFs5ZlzWxt6fqEHad6bEaSbfFEry8FOJ5Wq1SuB4N3gg3qTRjDWnxFTIgywrRWaS3tlx4RlslDCzE4jLlJ03ZRvW7sTf924F4B/jy/IilhO0MynsIwLAUmvY7h/vGAvmAo5HtER4YYeAD5z/pG4/p0nAQDeedqysvc1KkOLp7nycVz240cBwEpXttIrzdfXk8vPnbols7qsbT0dwYQL1fLoURaMvejYhdbrGGPO3hNNSM8NS5sbeuPrBTFKOZd049Y23cFYLyMaWLoJ0UrQv0YfXZBo2/6M9beYQVEPjDFM5kuWd+eW2T76m7VYt3MUgP8FU+Gkm+Y0jhBTdr0kxUyxZKVXhvboBUekUNKtG8eVZx2Mc49egG3XXoA3n1QepG5UPId71vw65PIHX4AYpUbPDfOS2Z3WtsDSjXna6KJ0Y4755YfOxf/884kAjFnY52/bYL2vlTX6tjb0iRAa/YMvDFp/D00WrG4/HHcw1ss2+PW2OYGzbgIZ+uhWO/Iqk4DTYNVDvqRDZ3ZXpWo3ZT/HiDFmXXxBDH3Qm21YeFExoDzrBjClK8ujr1+jL5pliv3QiOqVms5w+9O7ANiBUv5/l5nyaf/mxvZ6PGO+b9GjD5peKQZjLelGOIb8eP7Z/F4caehjwvLoA5w5v3liB9YNjGLnSBZbBidxSL+zG0064QzGeun/YdIrp0IwVsx3D1LLpxp8ZjDTDO56rYzl+DH0mYKGDbuMKphBNPpmFTUbywrSjWCQuR0paHrdefSiI8Lz6P1AiP5mt0dwDtzlLXinJ+7R8+M/JtwMg8LPkYUzbY9+8cyuSi/3RPUIxoqpofxPtyQk0ytjgk8Ra3n0bi/yxkdfwhnX3of9E3kcuXCG47mOpDMY62V8gjb7UJVgueJFTbdmK7UgRJdJMSz0HJ2IyKPnjdT7LOmm8k252k3A3p89rsDSTZM9evH7iKmG9aZXutd5+D0fG1HSekRwDnisjDf2+LezDwNQXr2yntkiv9bnz7AzipbOCWboFY9grNiJixt9d1VM6dHHRMKnRu9eAfvb1XZxs1XLZjuec6+M9TI+y4KeWAEzPgoBsm6Mzkn1n4AlTcffN++3HovZBvXAZwa2dFPFo/dxjCZCGnq1SVk347mStYBHlG648SiYee9A+N/NnSzg1+9oxKxmNGs3PBdr0J+yYja6zVo7/DeP4jzlv2E6oaI3ncB7z1gReB9Oj965DbCNvrtY2pT26Inop0S0j4jWC9tmE9E9RLTJ/H+WuZ2I6Doi2kxEzxDRiY0cfC2sPPoav0DWo3YNZ94MZ65xOqE6LiTNZZi2fuV8HH1QX6BxKgH14WLAWjdRnIDfvW+z1TAZiC5nmHvgPekEkip56tbWZ/qItTgNfcD0yiZkTYzlitbKa1G6SZoRwJved2rdHn3Olf4bRKOPOu9mzDT0c3pSlrfNK2fyVpiNWDClKoR1X3odPn9R7Vaebrghd+TRC5ebnWdvjPuCY4xMnKmeXvlzAOe5tl0N4F7G2EoA95qPAeD1AFaa/64C8INohhkOK4++hkdfLV1ypmthUDrpDMaK+n9CIccUzy9q4GBskBII0WRSrDczXzhRndSTVp9UFR0JtWx2JdJIj56oOQtexnMlzDUXKjmCprqOq846GKuWzxbq0YfDfT4HkW6i9kpHTLlvbnfaulYyBQ1dKRWqQlAVstp1ih8dNgOKG99EiOuQ45lHLxxDd92bc4+eb372FDb0jLGHAAy5Nl8M4Bfm378AcImw/ZfM4FEAM4loIWLCbx49Ny6fu7D87u+enrmDseKPG7YRtxLwAguSdRNV02t3I/KovF/u0XenE+ZNtL6sGzF24LfwG2Bc3M3wyMZzJcw3Db2jPLPGLONECG+kgPJWl+5OUpVoRAG83aM5EAELZ3bYHr3QDETTGb5//xYUSrrjs8PedPln+OnVUAnPPHoxGMvr1fNa9eaGFrbzoTX6+Yyx3QBg/j/P3L4IgNi9Y8DcVgYRXUVEq4lo9eDgoNdL6obI8Bhqa/TG83Nd1fzedvKSstemXStjxUBvWI3RCv74PFOMYKzPny6iZe18jGLqWRRYhj6VQLqWR+/j+Ig39SAt5IJmPoVB0xkm8iVLDuTflZkNLty/aVTB2Bk+Fww1ogDe7tEs+nvS6Eqp1m+TLWpWaiVnMl9yfN+w8RLL+AZcnS5i5dELtW4UR9YNdyCN4xy21WUziToY63V0Pb89Y+x6xtgqxtiq/v7+iIdhk1CopkbPNc3ZQn3u6995Eq699Niy16rmCkrufUQxXbM8iConyrO7xjCaKULXGUYyxTJJqRK23lvfOHtNo8lXVkbl+fGgbmdKLVt17L7xaTrDeK6I//j901aQzw0/hj9+16qyNRDVIGr81JvPNvp7OgAYaza4kQdsuaHeVoLlht7nudKA6pXP7xnH8jndSCiKFYzNFEplFSWfHhjBw0KwP+yM0dLo68hRFYOxusf+rGKJ5o2LKwdTWrqpwF4uyZj/7zO3DwAQ3eDFAHYhRlKq4jvrRlxYMW9Gh+dr3Q3H/aT81aJW3fxMoYTzr/sbPnTzkxjKFFDSmTX9r7nvkN2Z3IznSzi4vxuLzYUoUZ3TYrkCdx0h9/qHkq7jpw9vw+/XDOCGh1/03B+/MN3rH2rhV7oZzRYd9ZCCwPPDuUf/14378OALgxW90LD30jHXTXBGp0+PPsJyGYARG1u3cxSrls9CKqGgUNKh6wy5ol7W3erdP3sCf1gzYD0OO2PcM2rk7QddyyKiegRjvfLo+bXP2zSGPS+aQdijcTuAy82/Lwdwm7D9XWb2zWkARrnEExcdKbXmD2D1FhX0+HkVDKlbuhDv4mGvkVp183mNmef3jGOL2bC80o3IjV03pb4LeDxXQm9H0u6nGZGlF4tGdbgqg7rXP+g6rMBdsoIG69ZN/eJXujnuS3fjvO88FGjfHG7oZwmzsUJJt2925pjrXTC1dyznkGt8e/SINo9+OFOEzoAFfR3oTieQKWhWLSm3dOMmrAyy5qVhzOtNY+nsYCnOIkRklWz2NvTcozd+t17zWEdVFqQR+EmvvBnAIwAOJ6IBIroCwLUAziGiTQDOMR8DwJ0AtgLYDODHAP61IaMOQF9nEr95Ygc27h6r+JqcOdXtSCr43ttPwBVnrsDCPn8efRRlSsVmxF7sGzNqhfR1JnHHut3oSCo4ZcVsz9e6USwZoD7Gc0XM6EhYOd5R6ZFinnKl+MfnLjwKZx46FyVdt7ZVilF4pcP5QQkg3bx0IFP7RR7whUC9guFVFRK+kzMYG/bmvHcsh/mCI9DrU6OPuoInX0k9uztlSX+8b0NNQx/SkcgWNSzs6wiV/SaSVBUUNL2slaD4N/fo0wkFqYSCiYhWizeCmmcAY+yyCk+91uO1DMAH6x1UlGw2PeCv3fUcfv6eUzxfI0o3Fx57EC489qCK+0u4DH2kHn2FHfCiUAlVwfqdozh28UxffVABRGaYx3Ml4wKK2NDbKw+NG+3+CaFEgFWczAiqa8xeZFQpvdTrwvRDM8oUv+16o2qjaHjzJd36nvzmVW/1yn3jecyf0YFN5rk/w2esIuqVsXzdxeyulFX6Ya/ptNTq+hR2xhimdaAXKVVBsVRej178mzt5RITulDq1Pfp2YVmVqRxv9p320URYbEoARKTRC13nvdhvlnnlDa8XCXU8/FLvBTyeK6I3nbSCUlGlV4plYDuSzqwbu9qhYhh63ZY53OmeXvsLQqMNfUEIkC6b3Y1rXn8EAMPJsIJ6rnZ1YUezbyzvkB6DBWOjOwY8h76vK2nVhdll9qutdfMJOzvOCz2f6yGVMGJ77nr0gCjd2DeB7nQCmXz7afRThjccZ3jn3VVS7bgu7Ke3ZMK12taZRx9ujG45yM1o1jD0k4USJvPlqWnVCJvb78bQ6BOWtxmddGNfSO7yEtw4phOKJXHsHqkebPPSVP2gKMECzJv2jgfav1j5s68riYuPN7KO86VyOcruMBXoI8z3MOwbzzliOL6DsYg2vVJc9cylm5se2w7ALnnx+w+c7vnesKdXtqg5Ym1hSapGWrZXCQS3dKOQ8R0nXB79vrFcywRo297Qf+dtxyOpUlUPIeuRdVMJt/ctasoL+4J72oCw5LrCGCdMT2HHUBZDk4VA+eFRGOZ8SUOmoJnB2Kg1egaFYPU1dfbs5bETY7l8QdNx73NGglclOx7a0Af06J/YNhxo/9yT/fl7TgZgt/YbzxUdEhUgevTBj/FYroSixhxrQvx69ErEnUd4HaPudMLysh/fZqy95Ib+5OWzseUr5+O+T7zS8d56pJsoPHqu0eseMR8760Y3HxOSHtl9p3zlXrzjhsfqHksUtL2hJyKkVKVqnZSJfAnphOIrJSvhupvz6otvPmkxbrry1FBjtAKmFYbo1v6qzU7c1Fs3ZfO+cRz+2bsAGNpyVOmaHI0xyyi7Db19A1bKNNBKkplXtUE/BO3yVSlYX4ndZtofT0/lTsVX7nzOmvLz41CPRs9TK0VppNe3dBPtop8JwaN3S22is6IqhIP7exzPhzb0BT0yjb5Q8g7G8nOLz8SIzKC6I15n/L3mpWAOQaNoe0MPlP8IbsZzRd8Xg1tmyZhey4dfcyiWzQmWu23t06X7u3FPCYPEBeoNnj6725YoDEOPuvbnRtftxhhu6WbPqOEFdyZVdKUSViAPqFx62k6vDGrog928gnrbu8zvctBM4wYhNuveut8ImiYUl3QT6BMMeAqn6MX7lW6UiBdMZfKa1ZjcXYTvoBpxprDnV94smFYv3EP3ivlYGr3g0SeEwoS3rd2JQz59Z91jiJJpY+ireQjjuZLvZeJuQ8+LcnWlgvWlFFFqaPTu2u88C8cP9RbI6hamwb0dycDlGmqh6bZHn04abRoZYyhqOj5w45PW9gNC5UygculpWzcNqtEHk26CdC0DgOHJgnXD4p/H4at8gzaV94Jnt4jG3X8wNnqPvjttpOSKN7aTl8+qKa2FPb2yHn2ew6Azhr9s2Otdj94jGCumyX79rudbru7NNDH0SlWNngca/e3LqadnrKJc4b0IpUbwzd3N6SOvWel73/UE9sSxAUbNlIZIN4JHDxgBStGz70gqVlVCTkXpph6NvsaXEvPag2Zb5Ut6mQH6ulliY9TMTilbGxDiRxPrv3P8Bu8porpInMl8yZJoROlmyHXT9iKMdFPUdJR0FolHz1NTn9tjzGid9eiN/8VgbEK1nUm/tqSZTAtDn1CoqkY/niv67hTv5dEToa5If60FU5P5kpU3/+nzj8CCAPpwvbVuxGBzVzpRU2YKiq4zy1vi2mq+qDtKS3cmVceKWaBy6WlLUw3a5YsIo9li1eMkfuWghr5Q0st0at69jM9WRAMVNi7qJd2Qz2MRZZctTWf4/ZoB6zuL3939W3oRZhw8phNFMJaTM2fsXkXNLOlGIaiKYp0TYvyhnnLJUTItDH1tjb7ke3rrXjCVyZfQlVTrWonnzs13M5Ev4Y0nHIS/fvwsXHHmwYH2Xe/iG9GzTicUkFDZLwqcwVhj57mS5mhAkk6qOHxBr+N9lUpPazoDUfBgbHc6gcmChvf/ak3F14j9gd0zjFrkPQx9lzkLHPRYLRq2HIEYjL3zI6/A995+gu/3JgT5oV5uW7sTgL2KWNToj1tSuzFPmPPLq2ZVvfDz33NlrCjdCCurRY8+itlFFEwbQ1/txAli6N1GebKgoStAFkyl8QHeXndJ05Er6uhJJ3HovN5QkgQQ3jCLWTCphFJTZgqKQ6M3Z0XiIiLAkIw+fs5hjvd5NWW39hdi7QA/Pnc/u1Rs+kkAAB3qSURBVLfqWK3PD2AQd49mkSmUygKSvJXeHc8Y5aAchj7k4qWxXAlERrXRow6aUXWVt5uEokQ2UxvJOAuriTe5/3rLcTXfH2YcuYKdjhsV46Y06x2MtaUb0aMXs+KOWOh0UOJiWhj6WqWKx3JF35kJCVdJ0kyh5AhYhsG6eXhYT56+GTYGUG8wVpxmpxOKr5LKQRANM/fo80Khr69degx6O5JIqgo+9OpDccqK2VU9T42xULOrtI8mJeI55NcQ7Z/I4/Sv3oe/bNhb1sTGLReKAf16PPqedCJcpzOVyiqGRoVo6P0kLoQZhiXdRGDozz9mAQBgwpTCPPPohRIICXPltvG8fezrSdKIkmlh6FXhR3BT1HRrMZAf3HdzY6VqfT9mNemGF0oKskhKpN5grKjRpxJKA1bG2jOaDsGj59KM6J39++sOx+/efzrSCaXijVsTOjUF4YOvORQAqt60xTiPX41+6+Ck9Xe1XHLAqS2H1uizxUB1+EWSNbLTguDOivLT4/jn7zkZb11lVDkP40jYGn39Zo3PICc8PPq0eU7yjDuFjJskP3aOwnzNaETsg2lj6Ct5gLyioN/0SrttmODR15Fxw8cHeBvjbfsNQ+E3WOym3mCs06NXq441DDpjlrfEaw3lirp1gXgtYksnK3eiErN4gjCjI4kPvPKQqm0nReNTqw8xZ2DYrnRZqT4Px6nRh8uAGcsVfcuQbhKqEplGzzNrXnmY0VTIT0D4VYfPw3mmJx3GkXjHT4xVqFGUQOD18nlqsyiZdqdUdKVUDI4bsRXF8uiNMeeKOtIJBUtmd0Z2POtl2hj6SifOeK58JWE1rNQqTdDo6/bojf+9vKmbHt+OmV1JnHno3FD79pJuRrNF/GPLfs/Xu+GlZgFD3qgVOA6KU7oxs25KGoolY/9ehr6rSo8BMYsnKN0pFQVNdxQgc4+V49ejFxe7eclDf/zXl1t/O74rhSyBkC35liHdJHy03fTLrtEc5vak8ZPLV1nbjljQiy9cVN6XWcQumhfsu+8bz1nHetnccAsXRbrMc3E8b8Q8xBsVETnKQFt59OaYD0zmcdzimVg6uyuSoodRMC0MfTWNni8w8SvduD36yXz9Hn21WjfP7xnH6QfPwcyuVNlzvvbtId186KYn8fYfP2al4lWDV84EjOl31CtjRU3dlm7E0r3lRrsrpVotCL32FzalratGpyA/Gv2Hb34Kx3zxL9bjSaGioZehdy/95xAQSrupz6OPTrrZPZLFIf3djpvXXf92Ft5zxoqq76tV4K8SPLvnPy8+OlR1VzdcRhvPlTwX380R2o4SwfLoR7NFrN85hmMX9xntEyO6cdbLtDD0ShXt0c479ptHb/xf0hkOTOTx4v5JLA9Z+sDaZxUvZmiy4OhlGxR+iu4cyeKu9Xuw5qUh/G2T4c27W855cUBYhasoZHffiTCPnhtmLt1c+cvVljTjpe12phJWpyI3Wp0ePVC+QM3atw+N/s9P77LkQMAukQF4d72qpKenXOUg/DJah0afUGq33fTLgckC+n22uxSplphQDS4VnbB0VuDP9EK8KXvZDjGeInr03Ek4uL/HV7/qZtEaIeEGUy1Lw6sIVDW4vLBl3wRmdiah6Qwn1nlyVVptqukMw5mCw3sICndGLv3BPwAAJy6daT03mi1icY2hD2fKbwZ+2+75oSTUuhG1VT6T8PLOu1OqtSLZTdj0SsC+0VQysM48en8HQPToK6XG/vAdJ5Y1kulIOrtt+WUsW/R9LruJ0jCFDQrXKvBXiWHT0M+q41oRqRVTEDN7FLLLrOSEQnwJNbp1CfUyLTx6ozsRw68fe8lRTW7HUMb26H2elEcumIG5PSms3zlqeW59XeEuLA539NzG48pfrgZj9Z287hNW1IxHPYy4G6+gpxphkw7dUevGPh1HzNiAV8vAatJNoaQjmQhp6BN2jMBz34K369cgbhmcQGdSxZtOXIRPnXeE52vOe9lCrFrubA3p7p/rh5KmY7Kg1ReMjcDQM8asHsNBCSrd3LJmABt3j2EoY3ezipozDp1Tts3t0XOZJleyF20lVKVh6apBmSYevYL1u0bxmT+ux8p5Pbjn46/E+p2juPC7D1uSje++mgphQV8HhjMF6yZRb20LS7oRjGeuqOE+s/b6kll1NDp2PeYxCQAY8SHdZAsa3nLSYnzlTcfY+6QI8+iFlbGigeIefUXppoK8Mpwphr7YrVo7FQysWFzOj/Za1HQ8+MIgAOBb/3R8oLF0JCpnFlXCyiCrIxgbhaacL+koaHqocdTqzeDmE79/GgBw5StWoCOpRFr+gPOVNx5Tts1drsL26O3+04kqknGzmRYevaKQtVKPB22eN4sV8ZWEPQEyZ2Z1pTCSLdqyT0gPShwf4DT0T5gNGgBgeR1ZBO5AkhiAHfVj6IsautMJR1BNibD4lSZIN+JFyqfiXsHY7goe/US+hDUvDYeeAXGPvlDB2I0Ls6FaFzBjDC+YXahesTJ4xlQ6qQQ29KN1no8J1ZDk6o2/8Gb2YcahWskDtccgBs3rucHXwkuC4hIub5qTMFUDS7pJqOhIVJ55NptpYejFwAq3ey/utxey9AZcSdjXmcRIpohfPfoSAP+yTyW8UhZ//vdtAAxv4tB53pkZfnBLjVnBeLiXqXuRLZR37FGVYE06qqHp3lky/Nh6LWfvrJBe+c4bHsNEvhTeozelo7f88BE8tb28YYQYZK10MxCf520P//3cwwOPxfDog3nX/CYeesGUeTOvV7554AVjJnrMoto1bdzw3yBbqP3dh4TU3+HJQmT6POfUFYac5nXDsg29ce5yj57Hd9JJFXN6UhieLER2rdTDtDD03S49DbBPRsDw6oOwfE43tg9lMDCcRW9HIvSqVY5Xez7eMu+SE/zXKvHCbegZA05YOhMpVcFItnq52JJmTMHdS8qjlG5yrtZv67/0OhwhFDDzksW6UiomC6Uyr++p7SPG8yHTXUWH4Cd/e7HseVG6qZURUyjpVmZQkB6/nI6kaum9frFr0Ycz9HYv1Prkm/3jeRCFM/T8JuVntjkkpP4OZerLTvPiZ+85GRu/fJ6nE8jjOPymaKxBsLNu0gkFc3vSKJkpl3EzLQy9WHQsW9Sg6Qz7x2vXxK7Eyw+dY+XMXmI2ea4HKzfdvL7EKXu9dTu8coDPOGQuZnYlawZjb1u7C0B5umG9Hv1d6/fg/ueNG1m2qDtqwPSkE7jw2IWOx266UgnorLKxDZ11I4zDS5rhi+tmd6dqyiqFkm6VuA2jG/sJxt62dqd1HAEhVbgOjR6o36MfzRYDz5I5gQy926OPWLrpSiUq/nYLZjhLhS+ebcTR1u8cBWDcqOeYfXuDNApqFNMiGOuuXzKRK2EiX8I/n7oUPR0JnHvUgkD76xdS4dxpcWHgBoYbVHE1qt9a4kGYPyONhTM7rXhFJX67egcAYJcpQXC6kvVpjx+40SgFvO3aC8o8esBp3L2kG+4hb943gZeZXiNfjg4YlQTDIJYo8DJ247kSVIUwsytZ06PPl/S6imx1pRJlvYLdfPQ3awEYxxFA3TEjS7oJmRKo6wwaMxygsJlonUkVKVXxNPT7xnJ4/41r8J4zVmB4suC4odW73iQo7z1zBb76f89Zj192kHEert1hzCp7OxKWnRicyGPl/HirWE4Lj77TFWgdyRYwkS9hTk8a17z+SJy0LFgevGjcj10cfHrqZvncLiRVwkazP+sBc0r61TeVR/uD4nWjmNuTxtEHzcCzu8cc24ua7kg/PcVM+fvsBUc6XmfUbg8md1UiV9TQ6eq8VCstj99kLvzuw9a2t/7oEevv8OmV9jiKmo7P/mkdnhkYsbZNmB2TOpMq8h4evTjLKYiGPoRHv2hWJ3aPZn1lbXC5wKu7VBBmmsZ5t9nfNigf+91arPzM/+GeZ/eGHgMRoa8riVEPWfGXj7yEp7aP4CM3P4Uv3L7Bca6O5UqRe/TVcJfm4BLjS0NG7G92dwpzzQVjDzw/iK/euTF0vakomBaGfu+o4ZFyw7XbfOx3NawbfhJfdsoSvPqIeXWPL51QsWR2F3YMZfDsrjHLgEVxEznYI2NnTk8aS2Z1YTRbdKQp/v93bMSlP/gHNptt1DIFDb3phKOuB2AUWBvLlvD9+zfjfx7Y7DCGXuwZzWH51Xfg039c59i+etuQ2eOzevleN6LxW371HVh+9R3YagbXD5vfgw+cdUjV91dCNE4PvjCIGx/djst/+jgYY9g1ksVYzigB3OHqeDUwnMFZX78fP3l4q7Xthb3j1nEJU2Rr6ewuFDWGPWM5MMZw/JfvtgLUbriEMZYrQlUoVEwAAE5dYeSLX3b9o77WWLixpT7NMesNyrzeNPaY1+hvn9iO13zzAYxkClj90pDjdTc+ut3xeHZ3fUkRQfnkeYfjO28z0mZ5DfodQ8ZNMqkqlkN4/UNb8aOHtiJT0LBrJIuf/f3Fphv9aSHdLJlt1L54w/EH4fFtQ3jpgFkRMmQQVVEIG798nq8a5n6Z25PGHet24451u61th0Uw3ePSRndKtcqqHtLfjR1DhmyzezSH8ZxRU5/nfJ/9rQdx98fOwliu6GiiwOlJJ/DEtiE8vNkopfB1PI9XrJyLr7/5WCzsK68z8sGbjCbfNz22Hde83l409OGbnzKyelyGni+dv+os725aV77iYPx+zQ7rohK5+2OvrHI0quP1XYczRay45k7r8YIZHaZ+rmFwPI+Nu8ewZXAC24cy+Mqd9lT+KqFTVRiteqmp+W4/kEFHQsFIpojP/Wk93nnaMgDA9Q9tsV77j837oSqE4YyxGjWs3MdbVI7lSjjvOw/hyIUz8L23n4D7ntuHPeZ58jGzfO9fn92Lk5bNqpjpsqyOsiAL+zqxfWgSP3xwC6415ZHjv3xPzfdFnXVTi3991aHW3171rma6ZjUj2SLe/6vVWL9zDOcevSCSmjx+mRaG/v2vPASvP2ahFZj81C2GZ+luTxeEqBdmuBcG/e+Hz/Ss3BiG1Z89Gzpj+MEDW3DrkzsxpyeNhTONi/q133zQep2Y4XLutx+quL9Hthwo07D/tmk/vn3PC3jd0Quwavls9HUmkS1o2D+Rx75xW+P/5t0vWH/zmZXboz9hyUzc+ZFX4MgK3Xk6Uyq+9U/H4y0/NOSa77ztePzpqZ1468lLqh4HP5y4dCae3F55hrJnLIf+3jTW7RzFRd99GHvGchVfWw/c0N/8+Hbc/vQua3uuqGHbgUnHTeU//vAMAGP2NrcnGmO3ezSH3aM5HPX5vzi2P7t7DAcm8nhy+wguOu4gfPcyo1WhO55wRB3X1pELe/HXjXstI+/mTx88A5d8/+9l2xuVR+8HMZD/tUsNydV9gx+eLGDbfsPBeuiFQbzpxEV43y9W471nrsCrD69fGajGtDD0SVXBIf09ZSfjcYtnVnhH8zlsfi8e3rwfV511MN54wiKrcXQU8CnkFy46Gl+46GgAhox1xZkrcMPDdhrhuEeaqZcMsGxOF7YIDTU4v1s9gN+tHkBvRwKfPO8IPP7iEP4sGCkAuPXJgbL3zXEZJyLCUQdV//6rzLjKiUtn4uLjF+HiCLKfAOBn7z4FawdGoDOGL9y2AdvNmc/cnhTefspSzO1N4/O3bQCAikb+ixcdhSdeGrZaBIZhoeld3+46fhd+92FLWnOzdf9kXQYWMOTImx/fUfH5gWF7FsUzTF46MIlP3fKMtf2bbzkObzwh/O/xphMX47v3bS7b3pNO4DMXHInFs2xP+KH/eDXO+sb9AJrv0VeiUnLHdfduskqQXHPrOlxzq+Fwvu3kpQ0fU0MMPRGdB+A7AFQAP2GMXduIzwlKdzqB5XO6sO1ABq89Yl5dDb2j5urXH4F3nr4MKyKope2HhKrgcxcehfecsRx3rtuNW5/ciefM1cKA4TUtmtnpaej/98OvwNnfehCnrJiNOd0p/ORhZ875eK6Ez/1pvefnjuVKmNebxg/feRKu/MVqLJndhXecuizw+IkI6754rmdFyHro60pazTIKF+hWs/B7P/4qK5Nk50gWP3pwq+N9xy7uwzMDo/jEOYfh3WeswLvPWIHzX7Yby+aEK1+RUBW85aTF+P0a543Ry8jP6EhA0xkmC5olv4TlPy9+Gf7llYdaxpPT15nE018413r8sd+uxR+f2onlV9/heN2Tnzun7uyX5XO6cEh/N7YMTuK7l52Ak5bNQn9v2jHD/c9LXoZzj5qP+TM6sGrZLKx+aThUtcwoOfvIeUZQuML3r9SPOIpYXC0o6qAAEakAXgBwDoABAE8AuIwx9myl96xatYqtXr060nFU45mBERw2vzfSJsJTHU1neHpgxGrcEaQi5+B4Hn/bNIjP/HE9Pn3BkQ4j/8WLjsK9z+3DO05bZhnNm953Kl4espFKs1m7YwT3btyLT7hWt655aQiMAY9vG8Ih/T143dHBUnT9Mp4rYudIFkcsmIH3/Oxx3P/8II5cOAP/3yUvw0nLZmHzvnHM6U4jW9Swbf8kVs7vjcTg/ef/PosbHn4R33jzsThh6UzM7Uk7eiJs2DWKC66zs56OPmgGvvLGY3DckubPknNFDc/uHqu7imwj2DuWQ1HTMZnX8PTACB7bOoQrzlyBkWwBum5o+/WUViaiNYyxVTVf1wBDfzqALzLGXmc+vgYAGGNfrfSeZht6SWMoajqSqoI71+3GEQt6sXR2l6P65FjOWEjTiLUB04GipuOeZ/fisPk9OHRevHnZgFF7/3v3bcZ1l52AQ/q7PSuNShqLX0PfCOlmEQBR5BsAcGoDPkfSYvCp9fnHLPR8vt7ib9OdpKpUPLZxcNFxB+Gi4+or0SFpDo24BXu5a2XTBiK6iohWE9HqwcHBBgxDIpFIJEBjDP0AADHPbTGAXe4XMcauZ4ytYoyt6u/vb8AwJBKJRAI0xtA/AWAlEa0gohSAtwG4vQGfI5FIJBIfRK7RM8ZKRPQhAH+BkV75U8bYhqg/RyKRSCT+aEgePWPsTgB31nyhRCKRSBqOzIeSSCSSNkcaeolEImlzpKGXSCSSNifylbGhBkE0DuB5j6f6AIxWeFsjnptO+10KYHuF5+rZbxzHYaode7nf1vzMuPZb7Vqstd+jGWO16x0zxmL/B2B1he3XV3lP5M9Ns/0OTrHxttRnyv3K3zTC/Va8Fn3st+p1zP+1unTz5yY/N532W70tVOuNt9U+U+63sfttp+9S6/lq12Kt/da6jgG0jnSzmvkozCOJDnnMJZLWoJ5r0e97W8Wjvz7uAUxD5DGXSFqDeq5FX+9tCY9eIpFIJI2jVTz6loOIlhDR/US0kYg2ENFHXc//OxExIpoaHTTaCCI6j4ieJ6LNRHS1ue21RPQkEa0looeJ6NBa+4kbIvopEe0jovXCti8S0U7ze6wlovPjHKNfKl0vRPQNInqOiJ4hoj8SUev076xAle9yHBE9QkTriOjPRBRdv89G4ydiOx3/AVgI4ETz714YXbOOMh8vgVHL5yUAc+Me63T6B6N+0hYABwNIAXgawFHm73Ok+Zp/BfDzuMfq47ucBeBEAOuFbV8E8O9xjy3Ed/G8XgCcCyBhbv8agK/FPdY6vssTAF5pbn8vgP+Me6x+/0mPvgKMsd2MsSfNv8cBbITRVAUAvg3gk/Cosy9pOKcA2MwY28oYKwD4DYCLYfwW3MPqg0dp7FaDMfYQgKG4xxEFla4XxtjdjDHedf5RGGXLW5oq1/7hAB4yX3YPgEvjGWFwpKH3AREtB3ACgMeI6A0AdjLGno51UNMXrw5miwC8D8CdRDQA4J0AWqIhfUg+ZEodPyWi1muEWgPxenE99V4A/9fs8dSD67usB/AG86m3wNl3o6WRhr4GRNQD4BYA/wagBOAzAD4f66CmN5U6mH0MwPmMscUAfgbgW00dVXT8AMAhAI4HsBvAN+MdTjDE64UxNiZs/wyM6+fXcY0tKB7f5b0APkhEa2BIOoU4xxcEaeirQERJGD/0rxljt8K4AFcAeJqItsGYhj5JRAviG+W0w6uD2T4AxzHGuAf5WwAvb/bAooAxtpcxpjHGdAA/hiFVTQk8rhe+/XIAFwL4Z2YK3K2O13dhjD3HGDuXMXYSgJthxIqmBNLQV4CICMANADYyxr4FAIyxdYyxeYyx5Yyx5TCMzomMsT0xDnW6UamDWR8RHWa+5hwYuuqUg4jE7t9vhCEXtDxe14u5/TwAnwLwBsZYJq7xBaHKd5ln/q8A+CyAH8YzwuA0pPFIm3AGDK13HRGtNbd9mhlNVSQxwbw7mD1NRFcCuIWIdADDMKbZLQ0R3QzgVQDmmrGFLwB4FREdD0OO2gbg/bENMBie1wuA6wCkAdxj2E88yhj7QDxD9E2l77KSiD5oPr4VhkQ4JZALpiQSiaTNkdKNRCKRtDnS0EskEkmbIw29RCKRtDnS0EskEkmbIw29RCKRtDnS0EskEkmbIw29RCKRtDnS0EskEkmbIw29RCKRtDnS0EskEkmbIw29RCKRtDnS0EskEkmbIw29RCKRtDnS0EskEkmbIw29RCKRtDnS0LcpRKQR0Voi2kBETxPRx83OOBKJJAaIaCKuz5YdptqXLGPseMBqgXYTgD4YXYwkEsk0Qnp40wDG2D4AVwH4EBmoRPQNInqCiJ4hIqtdHRF9kojWmbOAa+MbtUTSfhBRDxHdS0RPmtfZxeb25US0kYh+bM7C7yaizqg+V3r00wTG2FZTupkH4GIAo4yxk4koDeDvRHQ3gCMAXALgVMZYhohmxzhkiaQdyQF4I2NsjIjmAniUiG43n1sJ4DLG2JVE9DsAlwK4MYoPlYZ+ekHm/+cCOJaI3mw+7oNxkp0N4GeMsQwAMMaGmj9EiaStIQBfIaKzAOgAFgGYbz73ImOMNyNfA2B5VB8qDf00gYgOBqAB2AfjZPswY+wvrtecB0B2i5dIGsc/A+gHcBJjrEhE2wB0mM/lhddpACKTbqRGPw0gon4APwTwPcYYA/AXAP9CREnz+cOIqBvA3QDeS0Rd5nYp3Ugk0dIHYJ9p5F8NYFkzPlR69O1LJxGtBZAEUALwKwDfMp/7CYxp4ZNERAAGAVzCGLuLiI4HsJqICgDuBPDppo9cImkziCgBw2P/NYA/E9FqAGsBPNeUzzccPIlEIpE0CiI6DsCPGWOnxPH5UrqRSCSSBkJEHwBwM4DPxjYG6dFLJBJJeyM9eolEImlzpKGXSCSSCCGiJUR0v7nSdQMRfdTcPpuI7iGiTf+vvft5saqM4zj+/hboohSFpHSRghuLwZRaaesWbmrjRjEFqUUQtDD0HxAErV0uAhezyEVl0Y9VLYJERCopNAxClBZKQ5k6IYjgx8V5gqubyeOdsc59vzb3zLnnPnw385lnnnue72mvy9v5dVV1sqpuVtWee8a62HbQ/ti+wO1Xk0s3kjQ+VbUSWJnkdFUtodv89AqwC7iS5EBV7QOWJ9nbelGtbtf8leTQyFgXgReS/PEgNTmjl6QxSnI5yel2PAuco9sB+zIw3S6bpgt2kswk+Q64NV81GfSSNE+qag2wETgFPJnkMnR/DOj6Ts0lwFdV9UNVvd63DjdMSdI8qKrHgWPAW62JWZ9hNie51JZ3vq6qX5J8e7+DOKOXpDFr7UWOAR8k+aSd/r2t3/+zjj8z1zhJLrXXGeBToNeGK4NeksaotRU5ApxL8u7IW58DO9vxTuCzOcZ5rH2ZS+tF9RJwtldN3nUjSeNTVS8Cx4EzdK2IoesZdQr4EHga+A3YmuRKVT0FfA8sbdf/DTwLPEE3i4dumf1okv29ajLoJWnYXLqRpIEz6CVp4Ax6SRo4g16SBs6gl6SBM+g1capqWVW90Y5XVdXHD7smaT55e6UmTus/8mWSqYdcirQg7HWjSXQAWNsenv4r8EySqaraRddR8FFgCngHWATsoHuw85a2wWUt8B6wArgBvJZkQR7yLPXh0o0m0T7gfJINwNv3vDcFbKPrKbIfuJFkI3ASeLVd8z7wZpLngT3A4QWpWurJGb10t29aD/HZqroGfNHOnwHWt46Em4CPRroRLl74MqV/z6CX7nZz5Pj2yM+36X5fHgGutv8GpP8Fl240iWaBJX0+mOQ6cKGqtkLXqbCqnhtncdK4GfSaOEn+BE5U1VngYI8htgO7q+on4Ge6R8RJ/1neXilJA+eMXpIGzqCXpIEz6CVp4Ax6SRo4g16SBs6gl6SBM+glaeAMekkauDtxKxOU5uC0gwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x3c5313d0b8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "data['pm2.5'][-1000:].plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x3c54164320>"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x3c53c7d080>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "data['temp'][-1000:].plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>pm2.5</th>\n",
       "      <th>dew</th>\n",
       "      <th>temp</th>\n",
       "      <th>press</th>\n",
       "      <th>iws</th>\n",
       "      <th>snow</th>\n",
       "      <th>rain</th>\n",
       "      <th>NE</th>\n",
       "      <th>NW</th>\n",
       "      <th>SE</th>\n",
       "      <th>cv</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>time</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2010-01-02 00:00:00</th>\n",
       "      <td>129.0</td>\n",
       "      <td>-16</td>\n",
       "      <td>-4.0</td>\n",
       "      <td>1020.0</td>\n",
       "      <td>1.79</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-01-02 01:00:00</th>\n",
       "      <td>148.0</td>\n",
       "      <td>-15</td>\n",
       "      <td>-4.0</td>\n",
       "      <td>1020.0</td>\n",
       "      <td>2.68</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-01-02 02:00:00</th>\n",
       "      <td>159.0</td>\n",
       "      <td>-11</td>\n",
       "      <td>-5.0</td>\n",
       "      <td>1021.0</td>\n",
       "      <td>3.57</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                     pm2.5  dew  temp   press   iws  snow  rain  NE  NW  SE  \\\n",
       "time                                                                          \n",
       "2010-01-02 00:00:00  129.0  -16  -4.0  1020.0  1.79     0     0   0   0   1   \n",
       "2010-01-02 01:00:00  148.0  -15  -4.0  1020.0  2.68     0     0   0   0   1   \n",
       "2010-01-02 02:00:00  159.0  -11  -5.0  1021.0  3.57     0     0   0   0   1   \n",
       "\n",
       "                     cv  \n",
       "time                     \n",
       "2010-01-02 00:00:00   0  \n",
       "2010-01-02 01:00:00   0  \n",
       "2010-01-02 02:00:00   0  "
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head(3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "sequence_length = 5*24\n",
    "delay = 24"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [],
   "source": [
    "data_ = []\n",
    "for i in range(len(data) - sequence_length - delay):\n",
    "    data_.append(data.iloc[i: i + sequence_length + delay])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [],
   "source": [
    "data_ = np.array([df.values for df in data_])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(43656, 144, 11)"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [],
   "source": [
    "np.random.shuffle(data_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [],
   "source": [
    "x = data_[:, :-delay, :]\n",
    "y = data_[:, -1, 0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [],
   "source": [
    "split_boundary = int(data_.shape[0] * 0.8)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "train_x = x[: split_boundary]\n",
    "test_x = x[split_boundary:]\n",
    "\n",
    "train_y = y[: split_boundary]\n",
    "test_y = y[split_boundary:]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "((34924, 120, 11), (8732, 120, 11), (34924,), (8732,))"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_x.shape, test_x.shape, train_y.shape, test_y.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [],
   "source": [
    "mean = train_x.mean(axis=0)\n",
    "std = train_x.std(axis=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(120, 11)"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mean.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [],
   "source": [
    "train_x = (train_x - mean)/std"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [],
   "source": [
    "test_x = (test_x - mean)/std"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [],
   "source": [
    "batch_size = 128"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [],
   "source": [
    "model = keras.Sequential()\n",
    "model.add(layers.Flatten(input_shape=(train_x.shape[1:])))\n",
    "model.add(layers.Dense(32, activation='relu'))\n",
    "model.add(layers.Dense(1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train on 34924 samples, validate on 8732 samples\n",
      "Epoch 1/50\n",
      "34924/34924 [==============================] - 3s 75us/step - loss: 71.7460 - val_loss: 65.2065\n",
      "Epoch 2/50\n",
      "34924/34924 [==============================] - 2s 57us/step - loss: 62.5733 - val_loss: 60.3283\n",
      "Epoch 3/50\n",
      "34924/34924 [==============================] - 2s 57us/step - loss: 59.3116 - val_loss: 59.0022\n",
      "Epoch 4/50\n",
      "34924/34924 [==============================] - 2s 56us/step - loss: 57.8837 - val_loss: 58.0606\n",
      "Epoch 5/50\n",
      "34924/34924 [==============================] - 2s 56us/step - loss: 56.8580 - val_loss: 57.3702\n",
      "Epoch 6/50\n",
      "34924/34924 [==============================] - 2s 55us/step - loss: 56.0321 - val_loss: 57.1347\n",
      "Epoch 7/50\n",
      "34924/34924 [==============================] - 2s 55us/step - loss: 55.2609 - val_loss: 56.4148\n",
      "Epoch 8/50\n",
      "34924/34924 [==============================] - 2s 55us/step - loss: 54.5894 - val_loss: 56.0588\n",
      "Epoch 9/50\n",
      "34924/34924 [==============================] - 2s 55us/step - loss: 53.9925 - val_loss: 55.5950\n",
      "Epoch 10/50\n",
      "34924/34924 [==============================] - 2s 55us/step - loss: 53.4920 - val_loss: 55.3156\n",
      "Epoch 11/50\n",
      "34924/34924 [==============================] - 2s 56us/step - loss: 53.0224 - val_loss: 55.0190\n",
      "Epoch 12/50\n",
      "34924/34924 [==============================] - 2s 56us/step - loss: 52.5978 - val_loss: 54.7303\n",
      "Epoch 13/50\n",
      "34924/34924 [==============================] - 2s 56us/step - loss: 52.1017 - val_loss: 54.4654\n",
      "Epoch 14/50\n",
      "34924/34924 [==============================] - 2s 55us/step - loss: 51.7422 - val_loss: 54.5915\n",
      "Epoch 15/50\n",
      "34924/34924 [==============================] - 2s 56us/step - loss: 51.3700 - val_loss: 54.1301\n",
      "Epoch 16/50\n",
      "34924/34924 [==============================] - 2s 58us/step - loss: 51.0246 - val_loss: 53.9921\n",
      "Epoch 17/50\n",
      "34924/34924 [==============================] - 2s 57us/step - loss: 50.6968 - val_loss: 53.5916\n",
      "Epoch 18/50\n",
      "34924/34924 [==============================] - 2s 56us/step - loss: 50.3249 - val_loss: 53.5372\n",
      "Epoch 19/50\n",
      "34924/34924 [==============================] - 2s 58us/step - loss: 49.9679 - val_loss: 53.2998\n",
      "Epoch 20/50\n",
      "34924/34924 [==============================] - 2s 57us/step - loss: 49.6930 - val_loss: 53.2111\n",
      "Epoch 21/50\n",
      "34924/34924 [==============================] - 2s 57us/step - loss: 49.3411 - val_loss: 52.9237\n",
      "Epoch 22/50\n",
      "34924/34924 [==============================] - 2s 56us/step - loss: 49.0449 - val_loss: 53.0674\n",
      "Epoch 23/50\n",
      "34924/34924 [==============================] - 2s 56us/step - loss: 48.6885 - val_loss: 52.8563\n",
      "Epoch 24/50\n",
      "34924/34924 [==============================] - 2s 58us/step - loss: 48.3474 - val_loss: 52.5821\n",
      "Epoch 25/50\n",
      "34924/34924 [==============================] - 2s 57us/step - loss: 48.1022 - val_loss: 52.3616\n",
      "Epoch 26/50\n",
      "34924/34924 [==============================] - 2s 57us/step - loss: 47.8395 - val_loss: 52.3695\n",
      "Epoch 27/50\n",
      "34924/34924 [==============================] - 2s 57us/step - loss: 47.4865 - val_loss: 52.0694\n",
      "Epoch 28/50\n",
      "34924/34924 [==============================] - 2s 56us/step - loss: 47.2276 - val_loss: 52.0108\n",
      "Epoch 29/50\n",
      "34924/34924 [==============================] - 2s 56us/step - loss: 46.9969 - val_loss: 51.7885\n",
      "Epoch 30/50\n",
      "34924/34924 [==============================] - 2s 56us/step - loss: 46.5736 - val_loss: 51.6318\n",
      "Epoch 31/50\n",
      "34924/34924 [==============================] - 2s 57us/step - loss: 46.3649 - val_loss: 51.5011\n",
      "Epoch 32/50\n",
      "34924/34924 [==============================] - 2s 58us/step - loss: 46.0676 - val_loss: 51.5093\n",
      "Epoch 33/50\n",
      "34924/34924 [==============================] - 2s 57us/step - loss: 45.8191 - val_loss: 51.3463\n",
      "Epoch 34/50\n",
      "34924/34924 [==============================] - 2s 57us/step - loss: 45.5711 - val_loss: 51.3255\n",
      "Epoch 35/50\n",
      "34924/34924 [==============================] - 2s 58us/step - loss: 45.2836 - val_loss: 51.1241\n",
      "Epoch 36/50\n",
      "34924/34924 [==============================] - 2s 57us/step - loss: 45.0567 - val_loss: 51.0044\n",
      "Epoch 37/50\n",
      "34924/34924 [==============================] - 2s 58us/step - loss: 44.8729 - val_loss: 50.8664\n",
      "Epoch 38/50\n",
      "34924/34924 [==============================] - 2s 58us/step - loss: 44.5874 - val_loss: 50.7929\n",
      "Epoch 39/50\n",
      "34924/34924 [==============================] - 2s 58us/step - loss: 44.4420 - val_loss: 50.8136\n",
      "Epoch 40/50\n",
      "34924/34924 [==============================] - 2s 58us/step - loss: 44.1344 - val_loss: 50.6078\n",
      "Epoch 41/50\n",
      "34924/34924 [==============================] - 2s 59us/step - loss: 43.9177 - val_loss: 50.4238\n",
      "Epoch 42/50\n",
      "34924/34924 [==============================] - 2s 58us/step - loss: 43.7143 - val_loss: 50.4359\n",
      "Epoch 43/50\n",
      "34924/34924 [==============================] - 2s 54us/step - loss: 43.4874 - val_loss: 50.3264\n",
      "Epoch 44/50\n",
      "34924/34924 [==============================] - 2s 57us/step - loss: 43.2906 - val_loss: 50.2380\n",
      "Epoch 45/50\n",
      "34924/34924 [==============================] - 2s 56us/step - loss: 43.1005 - val_loss: 50.0798\n",
      "Epoch 46/50\n",
      "34924/34924 [==============================] - 2s 58us/step - loss: 42.8617 - val_loss: 50.0128\n",
      "Epoch 47/50\n",
      "34924/34924 [==============================] - 2s 54us/step - loss: 42.6770 - val_loss: 49.9995\n",
      "Epoch 48/50\n",
      "34924/34924 [==============================] - 2s 57us/step - loss: 42.4921 - val_loss: 50.2413\n",
      "Epoch 49/50\n",
      "34924/34924 [==============================] - 2s 56us/step - loss: 42.3911 - val_loss: 49.8562\n",
      "Epoch 50/50\n",
      "34924/34924 [==============================] - 2s 54us/step - loss: 42.1543 - val_loss: 49.6705\n"
     ]
    }
   ],
   "source": [
    "model.compile(optimizer=keras.optimizers.Adam(), loss='mae')\n",
    "history = model.fit(train_x, train_y,\n",
    "                    batch_size = 128,\n",
    "                    epochs=50,\n",
    "                    validation_data=(test_x, test_y)\n",
    "                    )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x3c5c0d64e0>"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x3c5c0a99b0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(history.epoch, history.history.get('loss'), 'y', label='Training loss')\n",
    "plt.plot(history.epoch, history.history.get('val_loss'), 'b', label='Test loss')\n",
    "plt.legend()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [],
   "source": [
    "model = keras.Sequential()\n",
    "model.add(layers.LSTM(32, input_shape=(train_x.shape[1:])))\n",
    "model.add(layers.Dense(1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [],
   "source": [
    "model.compile(optimizer=keras.optimizers.Adam(), loss='mae')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train on 34924 samples, validate on 8732 samples\n",
      "Epoch 1/200\n",
      "34924/34924 [==============================] - 56s 2ms/step - loss: 88.4082 - val_loss: 82.0198\n",
      "Epoch 2/200\n",
      "34924/34924 [==============================] - 56s 2ms/step - loss: 80.1085 - val_loss: 76.9022\n",
      "Epoch 3/200\n",
      "34924/34924 [==============================] - 55s 2ms/step - loss: 75.8771 - val_loss: 73.2824\n",
      "Epoch 4/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 72.7580 - val_loss: 70.5160\n",
      "Epoch 5/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 70.4230 - val_loss: 68.4795\n",
      "Epoch 6/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 68.6456 - val_loss: 66.8473\n",
      "Epoch 7/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 66.9879 - val_loss: 65.1626\n",
      "Epoch 8/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 65.4807 - val_loss: 63.8404\n",
      "Epoch 9/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 64.2429 - val_loss: 62.7605\n",
      "Epoch 10/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 63.2045 - val_loss: 61.8243\n",
      "Epoch 11/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 62.3464 - val_loss: 61.1196\n",
      "Epoch 12/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 61.6600 - val_loss: 60.5011\n",
      "Epoch 13/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 61.0490 - val_loss: 60.1403\n",
      "Epoch 14/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 60.5899 - val_loss: 59.6954\n",
      "Epoch 15/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 60.1664 - val_loss: 59.2896\n",
      "Epoch 16/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 59.8112 - val_loss: 59.0759\n",
      "Epoch 17/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 59.4370 - val_loss: 58.6002\n",
      "Epoch 18/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 59.1313 - val_loss: 58.3882\n",
      "Epoch 19/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 58.7555 - val_loss: 58.1178\n",
      "Epoch 20/200\n",
      "34924/34924 [==============================] - 55s 2ms/step - loss: 58.6206 - val_loss: 61.6982\n",
      "Epoch 21/200\n",
      "34924/34924 [==============================] - 54s 2ms/step - loss: 59.1605 - val_loss: 58.1357\n",
      "Epoch 22/200\n",
      "34924/34924 [==============================] - 54s 2ms/step - loss: 58.5323 - val_loss: 58.1251\n",
      "Epoch 23/200\n",
      "34924/34924 [==============================] - 54s 2ms/step - loss: 58.3359 - val_loss: 57.6792\n",
      "Epoch 24/200\n",
      "34924/34924 [==============================] - 54s 2ms/step - loss: 57.8960 - val_loss: 57.2341\n",
      "Epoch 25/200\n",
      "34924/34924 [==============================] - 54s 2ms/step - loss: 57.8130 - val_loss: 57.3571\n",
      "Epoch 26/200\n",
      "34924/34924 [==============================] - 54s 2ms/step - loss: 57.6060 - val_loss: 57.2525\n",
      "Epoch 27/200\n",
      "34924/34924 [==============================] - 55s 2ms/step - loss: 58.0734 - val_loss: 57.4762\n",
      "Epoch 28/200\n",
      "34924/34924 [==============================] - 55s 2ms/step - loss: 57.3353 - val_loss: 56.8936\n",
      "Epoch 29/200\n",
      "34924/34924 [==============================] - 54s 2ms/step - loss: 56.9491 - val_loss: 56.3890\n",
      "Epoch 30/200\n",
      "34924/34924 [==============================] - 54s 2ms/step - loss: 56.9155 - val_loss: 56.5406\n",
      "Epoch 31/200\n",
      "34924/34924 [==============================] - 56s 2ms/step - loss: 58.4503 - val_loss: 57.6162\n",
      "Epoch 32/200\n",
      "34924/34924 [==============================] - 55s 2ms/step - loss: 57.5602 - val_loss: 56.9147\n",
      "Epoch 33/200\n",
      "34924/34924 [==============================] - 55s 2ms/step - loss: 57.1482 - val_loss: 56.7239\n",
      "Epoch 34/200\n",
      "34924/34924 [==============================] - 54s 2ms/step - loss: 57.0121 - val_loss: 56.5631\n",
      "Epoch 35/200\n",
      "34924/34924 [==============================] - 54s 2ms/step - loss: 56.4651 - val_loss: 56.4394\n",
      "Epoch 36/200\n",
      "34924/34924 [==============================] - 54s 2ms/step - loss: 56.1943 - val_loss: 55.8624\n",
      "Epoch 37/200\n",
      "34924/34924 [==============================] - 54s 2ms/step - loss: 55.7673 - val_loss: 55.7189\n",
      "Epoch 38/200\n",
      "34924/34924 [==============================] - 55s 2ms/step - loss: 55.8813 - val_loss: 56.5730\n",
      "Epoch 39/200\n",
      "34924/34924 [==============================] - 55s 2ms/step - loss: 56.3637 - val_loss: 55.4954\n",
      "Epoch 40/200\n",
      "34924/34924 [==============================] - 54s 2ms/step - loss: 56.3497 - val_loss: 56.1470\n",
      "Epoch 41/200\n",
      "34924/34924 [==============================] - 54s 2ms/step - loss: 55.7836 - val_loss: 55.7932\n",
      "Epoch 42/200\n",
      "34924/34924 [==============================] - 54s 2ms/step - loss: 55.3279 - val_loss: 55.2385\n",
      "Epoch 43/200\n",
      "34924/34924 [==============================] - 54s 2ms/step - loss: 55.4182 - val_loss: 55.1957\n",
      "Epoch 44/200\n",
      "34924/34924 [==============================] - 54s 2ms/step - loss: 55.2093 - val_loss: 55.3018\n",
      "Epoch 45/200\n",
      "34924/34924 [==============================] - 54s 2ms/step - loss: 55.6507 - val_loss: 55.6327\n",
      "Epoch 46/200\n",
      "34924/34924 [==============================] - 55s 2ms/step - loss: 55.7982 - val_loss: 55.8936\n",
      "Epoch 47/200\n",
      "34924/34924 [==============================] - 55s 2ms/step - loss: 55.2686 - val_loss: 55.0244\n",
      "Epoch 48/200\n",
      "34924/34924 [==============================] - 55s 2ms/step - loss: 55.0766 - val_loss: 55.6669\n",
      "Epoch 49/200\n",
      "34924/34924 [==============================] - 54s 2ms/step - loss: 56.2079 - val_loss: 63.1820\n",
      "Epoch 50/200\n",
      "34924/34924 [==============================] - 54s 2ms/step - loss: 57.1285 - val_loss: 55.3025\n",
      "Epoch 51/200\n",
      "34924/34924 [==============================] - 55s 2ms/step - loss: 55.2167 - val_loss: 55.5794\n",
      "Epoch 52/200\n",
      "34924/34924 [==============================] - 55s 2ms/step - loss: 55.1570 - val_loss: 55.0615\n",
      "Epoch 53/200\n",
      "34924/34924 [==============================] - 55s 2ms/step - loss: 54.5690 - val_loss: 54.2406\n",
      "Epoch 54/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 54.2337 - val_loss: 54.1200\n",
      "Epoch 55/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 54.0018 - val_loss: 54.0887\n",
      "Epoch 56/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 55.1140 - val_loss: 55.8283\n",
      "Epoch 57/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 54.6735 - val_loss: 54.4679\n",
      "Epoch 58/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 54.1294 - val_loss: 54.2874\n",
      "Epoch 59/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 53.7326 - val_loss: 54.6134\n",
      "Epoch 60/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 54.1140 - val_loss: 53.3964\n",
      "Epoch 61/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 53.1951 - val_loss: 53.0503\n",
      "Epoch 62/200\n",
      "34924/34924 [==============================] - 54s 2ms/step - loss: 52.7983 - val_loss: 52.5595\n",
      "Epoch 63/200\n",
      "34924/34924 [==============================] - 54s 2ms/step - loss: 53.8901 - val_loss: 53.4657\n",
      "Epoch 64/200\n",
      "34924/34924 [==============================] - 55s 2ms/step - loss: 53.8611 - val_loss: 54.1512\n",
      "Epoch 65/200\n",
      "34924/34924 [==============================] - 55s 2ms/step - loss: 52.9194 - val_loss: 52.3144\n",
      "Epoch 66/200\n",
      "34924/34924 [==============================] - 55s 2ms/step - loss: 52.0191 - val_loss: 51.7674\n",
      "Epoch 67/200\n",
      "34924/34924 [==============================] - 55s 2ms/step - loss: 51.8991 - val_loss: 52.8697\n",
      "Epoch 68/200\n",
      "34924/34924 [==============================] - 54s 2ms/step - loss: 53.6219 - val_loss: 52.8773\n",
      "Epoch 69/200\n",
      "34924/34924 [==============================] - 55s 2ms/step - loss: 53.0537 - val_loss: 52.4983\n",
      "Epoch 70/200\n",
      "34924/34924 [==============================] - 55s 2ms/step - loss: 53.2674 - val_loss: 52.9440\n",
      "Epoch 71/200\n",
      "34924/34924 [==============================] - 55s 2ms/step - loss: 52.7338 - val_loss: 52.3368\n",
      "Epoch 72/200\n",
      "34924/34924 [==============================] - 54s 2ms/step - loss: 52.1569 - val_loss: 53.3196\n",
      "Epoch 73/200\n",
      "34924/34924 [==============================] - 54s 2ms/step - loss: 52.0449 - val_loss: 52.7319\n",
      "Epoch 74/200\n",
      "34924/34924 [==============================] - 54s 2ms/step - loss: 51.9700 - val_loss: 52.2091\n",
      "Epoch 75/200\n",
      "34924/34924 [==============================] - 54s 2ms/step - loss: 51.7492 - val_loss: 52.1502\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 76/200\n",
      "34924/34924 [==============================] - 55s 2ms/step - loss: 51.8363 - val_loss: 50.9280\n",
      "Epoch 77/200\n",
      "34924/34924 [==============================] - 54s 2ms/step - loss: 50.8700 - val_loss: 51.3143\n",
      "Epoch 78/200\n",
      "34924/34924 [==============================] - 55s 2ms/step - loss: 51.0949 - val_loss: 51.7703\n",
      "Epoch 79/200\n",
      "34924/34924 [==============================] - 57s 2ms/step - loss: 51.5899 - val_loss: 51.8728\n",
      "Epoch 80/200\n",
      "34924/34924 [==============================] - 55s 2ms/step - loss: 51.3048 - val_loss: 51.4568\n",
      "Epoch 81/200\n",
      "34924/34924 [==============================] - 57s 2ms/step - loss: 52.1924 - val_loss: 52.1008\n",
      "Epoch 82/200\n",
      "34924/34924 [==============================] - 57s 2ms/step - loss: 51.4649 - val_loss: 52.4641\n",
      "Epoch 83/200\n",
      "34924/34924 [==============================] - 54s 2ms/step - loss: 52.0121 - val_loss: 51.6527\n",
      "Epoch 84/200\n",
      "34924/34924 [==============================] - 54s 2ms/step - loss: 53.9491 - val_loss: 52.9618\n",
      "Epoch 85/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 52.7579 - val_loss: 52.7749\n",
      "Epoch 86/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 52.7191 - val_loss: 52.4491\n",
      "Epoch 87/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 51.7233 - val_loss: 51.5921\n",
      "Epoch 88/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 50.8344 - val_loss: 50.4074\n",
      "Epoch 89/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 50.5834 - val_loss: 50.2454\n",
      "Epoch 90/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 50.6511 - val_loss: 50.1521\n",
      "Epoch 91/200\n",
      "34924/34924 [==============================] - 54s 2ms/step - loss: 49.9516 - val_loss: 50.8633\n",
      "Epoch 92/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 51.0975 - val_loss: 51.8929\n",
      "Epoch 93/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 49.9233 - val_loss: 50.1185\n",
      "Epoch 94/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 49.2348 - val_loss: 49.3496\n",
      "Epoch 95/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 50.7862 - val_loss: 50.8256\n",
      "Epoch 96/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 49.7896 - val_loss: 49.7706\n",
      "Epoch 97/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 50.0088 - val_loss: 49.3273\n",
      "Epoch 98/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 49.5632 - val_loss: 50.0979\n",
      "Epoch 99/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 52.6005 - val_loss: 56.4061\n",
      "Epoch 100/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 53.5481 - val_loss: 53.8178\n",
      "Epoch 101/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 52.9958 - val_loss: 52.3151\n",
      "Epoch 102/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 51.3708 - val_loss: 51.9736\n",
      "Epoch 103/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 50.5265 - val_loss: 50.7143\n",
      "Epoch 104/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 49.9651 - val_loss: 50.1910\n",
      "Epoch 105/200\n",
      "34924/34924 [==============================] - 54s 2ms/step - loss: 49.6806 - val_loss: 49.9072\n",
      "Epoch 106/200\n",
      "34924/34924 [==============================] - 56s 2ms/step - loss: 48.8444 - val_loss: 49.0962\n",
      "Epoch 107/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 49.6935 - val_loss: 50.0960\n",
      "Epoch 108/200\n",
      "34924/34924 [==============================] - 54s 2ms/step - loss: 48.9511 - val_loss: 49.0599\n",
      "Epoch 109/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 48.0598 - val_loss: 48.7062\n",
      "Epoch 110/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 48.3259 - val_loss: 48.3815\n",
      "Epoch 111/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 49.1312 - val_loss: 49.0100\n",
      "Epoch 112/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 49.0052 - val_loss: 51.0795\n",
      "Epoch 113/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 49.9319 - val_loss: 50.7838\n",
      "Epoch 114/200\n",
      "34924/34924 [==============================] - 55s 2ms/step - loss: 49.0712 - val_loss: 48.5583\n",
      "Epoch 115/200\n",
      "34924/34924 [==============================] - 54s 2ms/step - loss: 48.8658 - val_loss: 49.8801\n",
      "Epoch 116/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 48.7256 - val_loss: 49.0605\n",
      "Epoch 117/200\n",
      "34924/34924 [==============================] - 54s 2ms/step - loss: 49.4584 - val_loss: 49.4188\n",
      "Epoch 118/200\n",
      "34924/34924 [==============================] - 54s 2ms/step - loss: 48.2966 - val_loss: 48.3680\n",
      "Epoch 119/200\n",
      "34924/34924 [==============================] - 54s 2ms/step - loss: 49.2331 - val_loss: 49.7347\n",
      "Epoch 120/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 48.5029 - val_loss: 48.5952\n",
      "Epoch 121/200\n",
      "34924/34924 [==============================] - 54s 2ms/step - loss: 47.9926 - val_loss: 48.7235\n",
      "Epoch 122/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 47.6585 - val_loss: 48.4303\n",
      "Epoch 123/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 51.8161 - val_loss: 50.5084\n",
      "Epoch 124/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 48.0934 - val_loss: 48.0021\n",
      "Epoch 125/200\n",
      "34924/34924 [==============================] - 54s 2ms/step - loss: 47.0279 - val_loss: 47.5610\n",
      "Epoch 126/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 47.3533 - val_loss: 48.5746\n",
      "Epoch 127/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 46.8049 - val_loss: 48.3629\n",
      "Epoch 128/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 46.5691 - val_loss: 47.0678\n",
      "Epoch 129/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 47.4471 - val_loss: 48.5064\n",
      "Epoch 130/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 46.2063 - val_loss: 47.1902\n",
      "Epoch 131/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 45.7984 - val_loss: 46.8069\n",
      "Epoch 132/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 47.7317 - val_loss: 48.3083\n",
      "Epoch 133/200\n",
      "34924/34924 [==============================] - 54s 2ms/step - loss: 47.3570 - val_loss: 51.4924\n",
      "Epoch 134/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 49.5828 - val_loss: 51.4315\n",
      "Epoch 135/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 48.9211 - val_loss: 53.2028\n",
      "Epoch 136/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 49.9046 - val_loss: 49.2895\n",
      "Epoch 137/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 47.9023 - val_loss: 49.3463\n",
      "Epoch 138/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 47.8667 - val_loss: 48.9765\n",
      "Epoch 139/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 47.2575 - val_loss: 47.3283\n",
      "Epoch 140/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 46.2308 - val_loss: 48.5222\n",
      "Epoch 141/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 48.6884 - val_loss: 49.5869\n",
      "Epoch 142/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 47.7051 - val_loss: 47.9006\n",
      "Epoch 143/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 49.0447 - val_loss: 49.6022\n",
      "Epoch 144/200\n",
      "34924/34924 [==============================] - 54s 2ms/step - loss: 47.4302 - val_loss: 47.3396\n",
      "Epoch 145/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 49.3632 - val_loss: 52.6760\n",
      "Epoch 146/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 49.4791 - val_loss: 48.7676\n",
      "Epoch 147/200\n",
      "34924/34924 [==============================] - 54s 2ms/step - loss: 47.1778 - val_loss: 47.5155\n",
      "Epoch 148/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 48.1328 - val_loss: 49.7078\n",
      "Epoch 149/200\n",
      "34924/34924 [==============================] - 54s 2ms/step - loss: 49.2449 - val_loss: 48.4865\n",
      "Epoch 150/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 47.5867 - val_loss: 47.8243\n",
      "Epoch 151/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 46.8069 - val_loss: 47.8505\n",
      "Epoch 152/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 48.5747 - val_loss: 49.6984\n",
      "Epoch 153/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 47.2866 - val_loss: 48.7315\n",
      "Epoch 154/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 46.4384 - val_loss: 47.2333\n",
      "Epoch 155/200\n",
      "34924/34924 [==============================] - 54s 2ms/step - loss: 45.9163 - val_loss: 46.6560\n",
      "Epoch 156/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 45.3299 - val_loss: 46.4539\n",
      "Epoch 157/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 45.7755 - val_loss: 47.4117\n",
      "Epoch 158/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 46.1791 - val_loss: 47.1459\n",
      "Epoch 159/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 45.4941 - val_loss: 47.3652\n",
      "Epoch 160/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 47.6277 - val_loss: 47.0274\n",
      "Epoch 161/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 46.6614 - val_loss: 47.3931\n",
      "Epoch 162/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 45.9637 - val_loss: 46.4302\n",
      "Epoch 163/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 45.3320 - val_loss: 46.3438\n",
      "Epoch 164/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 45.0464 - val_loss: 46.4620\n",
      "Epoch 165/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 46.3176 - val_loss: 47.8499\n",
      "Epoch 166/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 48.5920 - val_loss: 47.8111\n",
      "Epoch 167/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 46.2494 - val_loss: 46.6575\n",
      "Epoch 168/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 47.1185 - val_loss: 47.1223\n",
      "Epoch 169/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 45.9335 - val_loss: 48.7085\n",
      "Epoch 170/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 46.5654 - val_loss: 46.0887\n",
      "Epoch 171/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 44.3743 - val_loss: 45.6323\n",
      "Epoch 172/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 44.5531 - val_loss: 46.3817\n",
      "Epoch 173/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 44.9477 - val_loss: 47.6625\n",
      "Epoch 174/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 44.8704 - val_loss: 46.0287\n",
      "Epoch 175/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 45.2884 - val_loss: 45.1533\n",
      "Epoch 176/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 50.4733 - val_loss: 48.9759\n",
      "Epoch 177/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 46.8703 - val_loss: 47.1045\n",
      "Epoch 178/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 45.6535 - val_loss: 51.1492\n",
      "Epoch 179/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 45.9259 - val_loss: 46.0352\n",
      "Epoch 180/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 44.5334 - val_loss: 45.7231\n",
      "Epoch 181/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 46.2400 - val_loss: 51.2578\n",
      "Epoch 182/200\n",
      "34924/34924 [==============================] - 54s 2ms/step - loss: 47.2176 - val_loss: 47.1061\n",
      "Epoch 183/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 48.3756 - val_loss: 50.1997\n",
      "Epoch 184/200\n",
      "34924/34924 [==============================] - 54s 2ms/step - loss: 47.8413 - val_loss: 47.6417\n",
      "Epoch 185/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 47.6899 - val_loss: 48.2818\n",
      "Epoch 186/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 47.1699 - val_loss: 49.2285\n",
      "Epoch 187/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 46.1684 - val_loss: 47.8670\n",
      "Epoch 188/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 45.9221 - val_loss: 46.4206\n",
      "Epoch 189/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 45.5333 - val_loss: 46.6891\n",
      "Epoch 190/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 44.4934 - val_loss: 45.0369\n",
      "Epoch 191/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 44.1723 - val_loss: 44.9971\n",
      "Epoch 192/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 44.4473 - val_loss: 46.4908\n",
      "Epoch 193/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 45.5872 - val_loss: 47.4453\n",
      "Epoch 194/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 45.3412 - val_loss: 45.6148\n",
      "Epoch 195/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 44.3142 - val_loss: 44.4903\n",
      "Epoch 196/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 44.2237 - val_loss: 45.1111\n",
      "Epoch 197/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 43.9672 - val_loss: 44.7893\n",
      "Epoch 198/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 44.2791 - val_loss: 44.6544\n",
      "Epoch 199/200\n",
      "34924/34924 [==============================] - 54s 2ms/step - loss: 44.4196 - val_loss: 46.4740\n",
      "Epoch 200/200\n",
      "34924/34924 [==============================] - 53s 2ms/step - loss: 46.6317 - val_loss: 47.6735\n"
     ]
    }
   ],
   "source": [
    "history = model.fit(train_x, train_y,\n",
    "                    batch_size = 128,\n",
    "                    epochs=200,\n",
    "                    validation_data=(test_x, test_y))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x3c27c1d240>"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x3c27c0fe10>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(history.epoch, history.history.get('loss'), 'y', label='Training loss')\n",
    "plt.plot(history.epoch, history.history.get('val_loss'), 'b', label='Test loss')\n",
    "plt.legend()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {},
   "outputs": [],
   "source": [
    "model = keras.Sequential()\n",
    "model.add(layers.LSTM(32, input_shape=(train_x.shape[1:]), return_sequences=True))\n",
    "model.add(layers.LSTM(32, return_sequences=True))\n",
    "model.add(layers.LSTM(32))\n",
    "model.add(layers.Dense(1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {},
   "outputs": [],
   "source": [
    "model.compile(optimizer=keras.optimizers.Adam(), loss='mae')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {},
   "outputs": [],
   "source": [
    "learning_rate_reduction = keras.callbacks.ReduceLROnPlateau(monitor='val_loss', patience=3, factor=0.5, min_lr=0.00001)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train on 34924 samples, validate on 8732 samples\n",
      "Epoch 1/200\n",
      "34924/34924 [==============================] - 163s 5ms/step - loss: 87.8405 - val_loss: 82.4943\n",
      "Epoch 2/200\n",
      "34924/34924 [==============================] - 161s 5ms/step - loss: 80.6917 - val_loss: 77.5596\n",
      "Epoch 3/200\n",
      "34924/34924 [==============================] - 158s 5ms/step - loss: 76.5511 - val_loss: 73.9945\n",
      "Epoch 4/200\n",
      "34924/34924 [==============================] - 157s 5ms/step - loss: 73.4437 - val_loss: 71.2060\n",
      "Epoch 5/200\n",
      "34924/34924 [==============================] - 157s 5ms/step - loss: 71.0459 - val_loss: 69.0802\n",
      "Epoch 6/200\n",
      "34924/34924 [==============================] - 157s 5ms/step - loss: 69.2386 - val_loss: 67.5249\n",
      "Epoch 7/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 67.9378 - val_loss: 66.4430\n",
      "Epoch 8/200\n",
      "34924/34924 [==============================] - 158s 5ms/step - loss: 67.0219 - val_loss: 65.6854\n",
      "Epoch 9/200\n",
      "34924/34924 [==============================] - 157s 5ms/step - loss: 66.3867 - val_loss: 65.1777\n",
      "Epoch 10/200\n",
      "34924/34924 [==============================] - 160s 5ms/step - loss: 65.9632 - val_loss: 64.8495\n",
      "Epoch 11/200\n",
      "34924/34924 [==============================] - 159s 5ms/step - loss: 65.6911 - val_loss: 64.6572\n",
      "Epoch 12/200\n",
      "34924/34924 [==============================] - 157s 5ms/step - loss: 65.5258 - val_loss: 64.5507\n",
      "Epoch 13/200\n",
      "34924/34924 [==============================] - 159s 5ms/step - loss: 65.4348 - val_loss: 64.5012\n",
      "Epoch 14/200\n",
      "34924/34924 [==============================] - 157s 5ms/step - loss: 65.3939 - val_loss: 64.4842\n",
      "Epoch 15/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 65.3759 - val_loss: 64.4787\n",
      "Epoch 16/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 64.9351 - val_loss: 61.8453\n",
      "Epoch 17/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 61.7340 - val_loss: 60.0546\n",
      "Epoch 18/200\n",
      "34924/34924 [==============================] - 158s 5ms/step - loss: 60.2369 - val_loss: 59.2183\n",
      "Epoch 19/200\n",
      "34924/34924 [==============================] - 157s 5ms/step - loss: 59.0186 - val_loss: 58.5840\n",
      "Epoch 20/200\n",
      "34924/34924 [==============================] - 161s 5ms/step - loss: 58.0281 - val_loss: 57.2853\n",
      "Epoch 21/200\n",
      "34924/34924 [==============================] - 161s 5ms/step - loss: 57.1500 - val_loss: 56.8527\n",
      "Epoch 22/200\n",
      "34924/34924 [==============================] - 158s 5ms/step - loss: 56.4294 - val_loss: 55.7949\n",
      "Epoch 23/200\n",
      "34924/34924 [==============================] - 158s 5ms/step - loss: 55.4558 - val_loss: 54.3863\n",
      "Epoch 24/200\n",
      "34924/34924 [==============================] - 157s 5ms/step - loss: 54.4771 - val_loss: 53.8751\n",
      "Epoch 25/200\n",
      "34924/34924 [==============================] - 157s 5ms/step - loss: 53.9402 - val_loss: 53.8628\n",
      "Epoch 26/200\n",
      "34924/34924 [==============================] - 158s 5ms/step - loss: 53.5754 - val_loss: 53.1969\n",
      "Epoch 27/200\n",
      "34924/34924 [==============================] - 158s 5ms/step - loss: 53.0977 - val_loss: 53.6605\n",
      "Epoch 28/200\n",
      "34924/34924 [==============================] - 159s 5ms/step - loss: 52.1871 - val_loss: 51.5380\n",
      "Epoch 29/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 51.0436 - val_loss: 50.8424\n",
      "Epoch 30/200\n",
      "34924/34924 [==============================] - 159s 5ms/step - loss: 50.3013 - val_loss: 49.2818\n",
      "Epoch 31/200\n",
      "34924/34924 [==============================] - 159s 5ms/step - loss: 49.4329 - val_loss: 49.0728\n",
      "Epoch 32/200\n",
      "34924/34924 [==============================] - 158s 5ms/step - loss: 48.7429 - val_loss: 49.8049\n",
      "Epoch 33/200\n",
      "34924/34924 [==============================] - 159s 5ms/step - loss: 48.3620 - val_loss: 47.9727\n",
      "Epoch 34/200\n",
      "34924/34924 [==============================] - 159s 5ms/step - loss: 47.2094 - val_loss: 46.6146\n",
      "Epoch 35/200\n",
      "34924/34924 [==============================] - 154s 4ms/step - loss: 46.9118 - val_loss: 46.8837\n",
      "Epoch 36/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 46.0084 - val_loss: 45.7500\n",
      "Epoch 37/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 46.6040 - val_loss: 46.5981\n",
      "Epoch 38/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 45.1017 - val_loss: 44.8864\n",
      "Epoch 39/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 45.8290 - val_loss: 45.2289\n",
      "Epoch 40/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 43.7821 - val_loss: 44.6590\n",
      "Epoch 41/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 43.4007 - val_loss: 43.3394\n",
      "Epoch 42/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 42.9280 - val_loss: 42.2757\n",
      "Epoch 43/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 42.0025 - val_loss: 42.2274\n",
      "Epoch 44/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 41.1916 - val_loss: 40.9974\n",
      "Epoch 45/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 41.1073 - val_loss: 40.5393\n",
      "Epoch 46/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 40.0796 - val_loss: 41.3901\n",
      "Epoch 47/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 39.6626 - val_loss: 39.1993\n",
      "Epoch 48/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 39.9653 - val_loss: 40.2011\n",
      "Epoch 49/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 39.1594 - val_loss: 41.0163\n",
      "Epoch 50/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 38.6385 - val_loss: 39.6772\n",
      "Epoch 51/200\n",
      "34924/34924 [==============================] - 155s 4ms/step - loss: 38.1444 - val_loss: 37.2995\n",
      "Epoch 52/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 35.8881 - val_loss: 36.3983\n",
      "Epoch 53/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 35.1464 - val_loss: 35.8012\n",
      "Epoch 54/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 35.4800 - val_loss: 35.8199\n",
      "Epoch 55/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 34.8973 - val_loss: 35.3554\n",
      "Epoch 56/200\n",
      "34924/34924 [==============================] - 155s 4ms/step - loss: 34.4875 - val_loss: 35.3016\n",
      "Epoch 57/200\n",
      "34924/34924 [==============================] - 159s 5ms/step - loss: 34.1063 - val_loss: 35.9372\n",
      "Epoch 58/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 34.6396 - val_loss: 35.0943\n",
      "Epoch 59/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 33.9070 - val_loss: 34.8558\n",
      "Epoch 60/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 33.1440 - val_loss: 33.7135\n",
      "Epoch 61/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 32.4932 - val_loss: 33.5326\n",
      "Epoch 62/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 32.1524 - val_loss: 33.3036\n",
      "Epoch 63/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 31.9491 - val_loss: 32.8891\n",
      "Epoch 64/200\n",
      "34924/34924 [==============================] - 157s 5ms/step - loss: 33.9275 - val_loss: 33.5527\n",
      "Epoch 65/200\n",
      "34924/34924 [==============================] - 157s 5ms/step - loss: 32.0755 - val_loss: 33.0286\n",
      "Epoch 66/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 31.5906 - val_loss: 33.2328\n",
      "Epoch 67/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 30.7067 - val_loss: 31.8863\n",
      "Epoch 68/200\n",
      "34924/34924 [==============================] - 157s 5ms/step - loss: 30.2050 - val_loss: 31.4478\n",
      "Epoch 69/200\n",
      "34924/34924 [==============================] - 157s 5ms/step - loss: 30.7244 - val_loss: 31.8741\n",
      "Epoch 70/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 29.9824 - val_loss: 31.5770\n",
      "Epoch 71/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 29.6180 - val_loss: 31.3247\n",
      "Epoch 72/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 29.4984 - val_loss: 31.1848\n",
      "Epoch 73/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 29.4798 - val_loss: 31.1876\n",
      "Epoch 74/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 29.1300 - val_loss: 30.9212\n",
      "Epoch 75/200\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "34924/34924 [==============================] - 156s 4ms/step - loss: 29.2146 - val_loss: 30.7731\n",
      "Epoch 76/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 28.8769 - val_loss: 30.5097\n",
      "Epoch 77/200\n",
      "34924/34924 [==============================] - 158s 5ms/step - loss: 28.8874 - val_loss: 30.6552\n",
      "Epoch 78/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 28.7219 - val_loss: 30.4542\n",
      "Epoch 79/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 28.5923 - val_loss: 30.4131\n",
      "Epoch 80/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 28.5602 - val_loss: 30.1668\n",
      "Epoch 81/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 28.4362 - val_loss: 29.9731\n",
      "Epoch 82/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 28.4768 - val_loss: 30.1384\n",
      "Epoch 83/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 28.0526 - val_loss: 30.0570\n",
      "Epoch 84/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 28.3822 - val_loss: 29.8240\n",
      "Epoch 85/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 28.1868 - val_loss: 29.8040\n",
      "Epoch 86/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 27.8294 - val_loss: 29.5594\n",
      "Epoch 87/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 27.7728 - val_loss: 29.3766\n",
      "Epoch 88/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 27.5214 - val_loss: 29.3947\n",
      "Epoch 89/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 27.6113 - val_loss: 29.5321\n",
      "Epoch 90/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 27.6600 - val_loss: 29.3398\n",
      "Epoch 91/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 27.6332 - val_loss: 29.3860\n",
      "Epoch 92/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 27.7468 - val_loss: 29.8121\n",
      "Epoch 93/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 27.3588 - val_loss: 29.6950\n",
      "Epoch 94/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 26.7572 - val_loss: 28.9750\n",
      "Epoch 95/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 26.5647 - val_loss: 28.6839\n",
      "Epoch 96/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 26.3616 - val_loss: 28.8018\n",
      "Epoch 97/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 26.4602 - val_loss: 28.6652\n",
      "Epoch 98/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 26.3115 - val_loss: 28.6764\n",
      "Epoch 99/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 26.2700 - val_loss: 28.5954\n",
      "Epoch 100/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 26.2099 - val_loss: 28.7468\n",
      "Epoch 101/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 26.0541 - val_loss: 28.4325\n",
      "Epoch 102/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 26.1041 - val_loss: 28.4213\n",
      "Epoch 103/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 26.0423 - val_loss: 28.3486\n",
      "Epoch 104/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 25.9162 - val_loss: 28.4927\n",
      "Epoch 105/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 25.9310 - val_loss: 28.4148\n",
      "Epoch 106/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 25.9597 - val_loss: 28.4460\n",
      "Epoch 107/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 25.5638 - val_loss: 28.0680\n",
      "Epoch 108/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 25.4201 - val_loss: 28.0585\n",
      "Epoch 109/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 25.3818 - val_loss: 28.0104\n",
      "Epoch 110/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 25.3149 - val_loss: 28.0459\n",
      "Epoch 111/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 25.2976 - val_loss: 28.0588\n",
      "Epoch 112/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 25.2890 - val_loss: 28.0351\n",
      "Epoch 113/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 25.0883 - val_loss: 27.9628\n",
      "Epoch 114/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 25.0297 - val_loss: 27.9290\n",
      "Epoch 115/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 25.0033 - val_loss: 27.9426\n",
      "Epoch 116/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 24.9706 - val_loss: 27.8734\n",
      "Epoch 117/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 24.9392 - val_loss: 27.9330\n",
      "Epoch 118/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 24.9418 - val_loss: 27.8949\n",
      "Epoch 119/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 24.9148 - val_loss: 27.8652\n",
      "Epoch 120/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 24.9021 - val_loss: 27.8287\n",
      "Epoch 121/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 24.9045 - val_loss: 27.7990\n",
      "Epoch 122/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 24.8673 - val_loss: 27.7743\n",
      "Epoch 123/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 24.8543 - val_loss: 27.7795\n",
      "Epoch 124/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 24.8294 - val_loss: 27.7836\n",
      "Epoch 125/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 24.8795 - val_loss: 28.0174\n",
      "Epoch 126/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 24.9397 - val_loss: 27.8859\n",
      "Epoch 127/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 24.7987 - val_loss: 27.8696\n",
      "Epoch 128/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 24.7379 - val_loss: 27.8304\n",
      "Epoch 129/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 24.6914 - val_loss: 27.8171\n",
      "Epoch 130/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 24.6738 - val_loss: 27.8071\n",
      "Epoch 131/200\n",
      "34924/34924 [==============================] - 160s 5ms/step - loss: 24.6545 - val_loss: 27.7954\n",
      "Epoch 132/200\n",
      "34924/34924 [==============================] - 161s 5ms/step - loss: 24.6547 - val_loss: 27.7805\n",
      "Epoch 133/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 24.6424 - val_loss: 27.7715\n",
      "Epoch 134/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 24.6315 - val_loss: 27.7660\n",
      "Epoch 135/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 24.6213 - val_loss: 27.7356\n",
      "Epoch 136/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 24.6131 - val_loss: 27.7492\n",
      "Epoch 137/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 24.6058 - val_loss: 27.7388\n",
      "Epoch 138/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 24.5993 - val_loss: 27.7341\n",
      "Epoch 139/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 24.5971 - val_loss: 27.7368\n",
      "Epoch 140/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 24.5831 - val_loss: 27.7167\n",
      "Epoch 141/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 24.5763 - val_loss: 27.7295\n",
      "Epoch 142/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 24.5754 - val_loss: 27.7069\n",
      "Epoch 143/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 24.5631 - val_loss: 27.7101\n",
      "Epoch 144/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 24.5583 - val_loss: 27.7103\n",
      "Epoch 145/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 24.5532 - val_loss: 27.6947\n",
      "Epoch 146/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 24.5473 - val_loss: 27.6975\n",
      "Epoch 147/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 24.5386 - val_loss: 27.6894\n",
      "Epoch 148/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 24.5419 - val_loss: 27.6758\n",
      "Epoch 149/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 24.5277 - val_loss: 27.6756\n",
      "Epoch 150/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 24.5285 - val_loss: 27.6836\n",
      "Epoch 151/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 24.5155 - val_loss: 27.6831\n",
      "Epoch 152/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 24.5139 - val_loss: 27.6869\n",
      "Epoch 153/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 24.5154 - val_loss: 27.6880\n",
      "Epoch 154/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 24.5048 - val_loss: 27.6827\n",
      "Epoch 155/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 24.5062 - val_loss: 27.6682\n",
      "Epoch 156/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 24.5246 - val_loss: 27.7194\n",
      "Epoch 157/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 24.5202 - val_loss: 27.7024\n",
      "Epoch 158/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 24.4927 - val_loss: 27.6837\n",
      "Epoch 159/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 24.4843 - val_loss: 27.6774\n",
      "Epoch 160/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 24.4773 - val_loss: 27.6619\n",
      "Epoch 161/200\n",
      "34924/34924 [==============================] - 156s 4ms/step - loss: 24.4704 - val_loss: 27.6793\n",
      "Epoch 162/200\n",
      "34924/34924 [==============================] - 157s 4ms/step - loss: 24.4621 - val_loss: 27.6610\n",
      "Epoch 163/200\n",
      " 5248/34924 [===>..........................] - ETA: 2:07 - loss: 23.9949"
     ]
    },
    {
     "ename": "KeyboardInterrupt",
     "evalue": "",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mKeyboardInterrupt\u001b[0m                         Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-71-fe15f8a4a5b7>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m      3\u001b[0m                     \u001b[0mepochs\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m200\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m      4\u001b[0m                     \u001b[0mvalidation_data\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mtest_x\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtest_y\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 5\u001b[1;33m                     callbacks=[learning_rate_reduction])\n\u001b[0m",
      "\u001b[1;32mH:\\Anaconda\\lib\\site-packages\\tensorflow\\python\\keras\\engine\\training.py\u001b[0m in \u001b[0;36mfit\u001b[1;34m(self, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, steps_per_epoch, validation_steps, **kwargs)\u001b[0m\n\u001b[0;32m   1361\u001b[0m           \u001b[0minitial_epoch\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0minitial_epoch\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   1362\u001b[0m           \u001b[0msteps_per_epoch\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0msteps_per_epoch\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1363\u001b[1;33m           validation_steps=validation_steps)\n\u001b[0m\u001b[0;32m   1364\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   1365\u001b[0m   def evaluate(self,\n",
      "\u001b[1;32mH:\\Anaconda\\lib\\site-packages\\tensorflow\\python\\keras\\engine\\training_arrays.py\u001b[0m in \u001b[0;36mfit_loop\u001b[1;34m(model, inputs, targets, sample_weights, batch_size, epochs, verbose, callbacks, val_inputs, val_targets, val_sample_weights, shuffle, callback_metrics, initial_epoch, steps_per_epoch, validation_steps)\u001b[0m\n\u001b[0;32m    262\u001b[0m           \u001b[0mins_batch\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mi\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mins_batch\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mi\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mtoarray\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    263\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 264\u001b[1;33m         \u001b[0mouts\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mins_batch\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    265\u001b[0m         \u001b[1;32mif\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[0misinstance\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mouts\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mlist\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    266\u001b[0m           \u001b[0mouts\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m[\u001b[0m\u001b[0mouts\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32mH:\\Anaconda\\lib\\site-packages\\tensorflow\\python\\keras\\backend.py\u001b[0m in \u001b[0;36m__call__\u001b[1;34m(self, inputs)\u001b[0m\n\u001b[0;32m   2912\u001b[0m       \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_make_callable\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfeed_arrays\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfeed_symbols\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0msymbol_vals\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0msession\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   2913\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 2914\u001b[1;33m     \u001b[0mfetched\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_callable_fn\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0marray_vals\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m   2915\u001b[0m     \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_call_fetch_callbacks\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfetched\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;33m-\u001b[0m\u001b[0mlen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_fetches\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   2916\u001b[0m     \u001b[1;32mreturn\u001b[0m \u001b[0mfetched\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;33m:\u001b[0m\u001b[0mlen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0moutputs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32mH:\\Anaconda\\lib\\site-packages\\tensorflow\\python\\client\\session.py\u001b[0m in \u001b[0;36m__call__\u001b[1;34m(self, *args, **kwargs)\u001b[0m\n\u001b[0;32m   1380\u001b[0m           ret = tf_session.TF_SessionRunCallable(\n\u001b[0;32m   1381\u001b[0m               \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_session\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_session\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_handle\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mstatus\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1382\u001b[1;33m               run_metadata_ptr)\n\u001b[0m\u001b[0;32m   1383\u001b[0m         \u001b[1;32mif\u001b[0m \u001b[0mrun_metadata\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   1384\u001b[0m           \u001b[0mproto_data\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mtf_session\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mTF_GetBuffer\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mrun_metadata_ptr\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;31mKeyboardInterrupt\u001b[0m: "
     ]
    }
   ],
   "source": [
    "history = model.fit(train_x, train_y,\n",
    "                    batch_size = 128,\n",
    "                    epochs=200,\n",
    "                    validation_data=(test_x, test_y),\n",
    "                    callbacks=[learning_rate_reduction])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
